python - 将特定行从 CSV 文件迭代复制到新文件

标签 python

我有一个很大的制表符分隔的 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/

相关文章:

python - 在文件中搜索单词并打印该单词在 python 中出现的行号

python - 基于子列表过滤列表时如何避免硬编码?

python - 使用 Python 和 MySQLdb 插入表

python - HTTP 错误 429 : Too Many Requests by python geopy

python - Gunicorn + nginx - 忽略 EPIPE

python - 为什么我使用 PILLOW 3.1.0 得到 "I/O operation on closed file"?

python 执行系统命令(Windows)

python - 请求 : post multipart/form-data

python - OSError :/usr/lib/libgdal. so.20: undefined symbol :sqlite3_column_table_name

python - 从扫描图像中修剪空白噪声空间的更快方法