我有一个大的文本文件,我想从第一个文件,但与一些变化的新文件。下面是我的第一个文件内容的一个小示例:
chr1 transcript 1314046 1314412 + RP5-890O3.3
chr1 transcript 1321091 1326476 - CCNL2
chr1 transcript 1334902 1336467 + RP4-758J18.2
我想更改3rd
和4th columns
。事实上,在新文件中:
the 3rd column = (4th column of 1st file) - 30
the 4th column = (4th column of 1st file) + 10
预期产量:
chr1 transcript 1314382 1314422 + RP5-890O3.3
chr1 transcript 1326446 1326486 - CCNL2
chr1 transcript 1336437 1336477 + RP4-758J18.2
我正试图用Python实现这一点,并编写了以下代码,但它没有返回我想要的。你知道怎么修吗?你知道吗
file = open('myfile.txt', 'rb')
new = []
for line in file:
col3 = line[3]-30
col4 = line[3]+10
new.append(col3\tcol4)
with open('outfile.txt', "w") as f:
for item in new:
f.write("%s\n" % item)
这样就可以了:
要成功地将
int
添加到值,您需要将其转换为int
,但也需要将结果值转换为str
,以避免写入outfile
时出错。 生成的文件如下所示:如果要使用可应用于逐行编辑某些数据的模式,可以执行以下操作:
当然
mutate
的定义将取决于您手头的特定任务请注意,我没有在每个字符串的末尾剥离换行符,也没有在函数中剥离换行符,也没有在调用它的隐式循环中剥离换行符,因此要正确地连接这些行,我们使用空字符串
''
。你知道吗还要注意的是,对于一个大的输入文件,在输出缓冲区满之前,文件是延迟读取的(如果您知道自己在做什么,请使用^{}
buffering=...
opt arg来更改缓冲区大小),因此这在内存方面特别有效。你知道吗相关问题 更多 >
编程相关推荐