使用tsv文件中的列-python 3
我有一个tsv文件分为列,我需要从中选择特定列并将它们写入一个新文件,基本上过滤原始文件。根据单独列表中包含的标题选择列。我设法找到了相关列的索引,但由于某种原因,我无法让它们正确写入新文件使用tsv文件中的列-python 3,python,csv,file,python-3.7,Python,Csv,File,Python 3.7,我有一个tsv文件分为列,我需要从中选择特定列并将它们写入一个新文件,基本上过滤原始文件。根据单独列表中包含的标题选择列。我设法找到了相关列的索引,但由于某种原因,我无法让它们正确写入新文件 with open ("some_file.txt", "w") as out_file, open("another_file.txt", "r") as in_file: first_line = True for line in in_file: line = line.rstrip("\n
with open ("some_file.txt", "w") as out_file, open("another_file.txt", "r") as in_file:
first_line = True
for line in in_file:
line = line.rstrip("\n")
line = line.split("\t")
if first_line:
column_indices = [x for x in range(len(line)) if line[x] in [some_list]
first_line = False
如果我手动插入索引out\u file.writeline[7]+\n,则会打印正确的列,但我尝试的循环/列表组合类型对所有索引都不起作用。我写所有相关内容的唯一方法是在标题后面的行中,而不是在每个标题下面的列中
我是python的初学者,因此非常感谢您的帮助/见解 Python与模块一起打包,模块包含为您的用例设计的类。无需重新发明车轮: input.tsv:
col1 col2 col3 col4 col5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
Python:
import csv
with open('input.tsv','r',newline='') as fin,open('output.tsv','w',newline='') as fout:
reader = csv.DictReader(fin,delimiter='\t')
writer = csv.DictWriter(fout,delimiter='\t',fieldnames=['col2','col3','col4'],extrasaction='ignore')
writer.writeheader()
for row in reader:
writer.writerow(row)
output.tsv:
col2 col3 col4
2 3 4
3 4 5
4 5 6
5 6 7