我有一个很大的制表符分隔的 csv 文件,格式如下:
#mirbase_acc mirna_name gene_id gene_symbol transcript_id ext_transcript_id mirna_alignment gene_alignment mirna_start mirna_end gene_start gene_end genome_coordinates conservation align_score seed_cat energy mirsvr_score
我希望能够做的是遍历行并根据“gene_id”字段中的数据(字符串)选择项目,然后将这些行复制到新文件。
我是一个 python 菜鸟,我认为这是让我的脚湿润的好方法,但它比看起来更难!我一直在尝试使用 csv 包来操作文件,使用 dictreader 和 dictwriter 读取和写入基本内容。如果有人能帮我想出一个迭代搜索方面的模板,我将感激不尽。到目前为止,我有:
import csv
f = open("C:\Documents and Settings\Administrator\Desktop\miRNA Scripting\mirna_predictions_short.txt", "r")
reader = csv.DictReader(f, delimiter='\t')
writer = open("output.txt",'wb')
writer = csv.writer(writer, delimiter='\t')
然后是迭代位,blurgh:
for row in reader:
if reader.gene_id == str(CG11710):
writer.writerow
这显然行不通。关于更好的结构方式有什么想法吗??
最佳答案
你快到了!代码几乎是正确的:)
访问字典是这样的:
some_dict['some_key']
代替:
some_object.some_attribute
创建字符串不是用 str(...)
完成的,而是用 CG11710
这样的引号完成的
在你的情况下:
for row in reader:
if row['gene_id'] == 'CG11710':
writer.writerow(row)
关于python - 将特定行从 CSV 文件迭代复制到新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11584528/