我有这份TSV文件:
kind 10
men 9
number 8
animated 7
blade 6
jolly 5
manage 4
move 3
complete 2
meat 1我想删除所有小于数字5的单词。
因此,只有:
Output:
kind 10
men 9
number 8
animated 7
blade 6
jolly 5我想把它作为python代码来完成。我在想,也许我可以把它载入一个列表,然后从那里看数字,如果它小于5,它就被删除了。但我不确定该怎么做。
就像这样:
new_file = open(the_file,encoding="utf-8")
data = new_file.readlines()
new_list = []
for values in data:
if values > 5:
new_list.append(values)发布于 2021-05-21 07:54:13
欢迎来到社区。正如其他人所建议的那样,你很可能会使用熊猫。如果要使用csv模块,可以执行以下操作:
import csv
tsv_file = open("example.tsv")
read_tsv = list(csv.reader(tsv_file, delimiter="\t"))
for row in read_tsv:
if float(row[1]) < 5:
read_tsv.remove(row)它将文件读入列表列表,每一行都是一个列表。如果它的值总是第二个,您可以这样读它,并从更大的列表中删除行。希望能帮上忙!
编辑:,对不起,我刚看到你的评论。尝试一些类似我在这篇文章中编辑的东西(我对CSV做了一些错误的假设,但我认为它现在已经修复了。)希望它能成功。
发布于 2021-05-21 07:50:07
如果你在看这类文件,我真的会调查潘达斯的。这基本上就是类固醇的Excel。
代码大致如下所示:
df = pd.read_csv('file.tsv', sep='\t')
df = df.loc[4 < df['column_name']]发布于 2021-05-21 08:04:02
首先,您应该在文件中阅读。这将给出一个包含文件中每一行的列表:
with open('test.txt', 'rt') as file:
content = file.readlines()现在,它足以检查从每一行的最后到数字生成的整数(在去掉换行符之后)。将其与5进行比较,然后将其写回文件,如下所示:
with open('test.txt', 'wt') as file:
file.writelines([c for c in content if int(c.strip()[-2:]) >= 5])https://stackoverflow.com/questions/67632694
复制相似问题