我有csv文件a.txt
和b.txt
(没有标题,标签分隔),每个文件有6列和大约200,000行,每个文件中的行号总是相同的,我要做的就是是:
将a.txt
> 输出中的所有前4个cols复制到新文件c.txt
将a.txt
+ 5 col {5} {<1}} &gt; 输出到5 col b.txt
< / p>
获取c.txt
+ 6 col a.txt
&gt; 输出到6 col b.txt
< / p>
c.txt
a.txt
B sub 19 20 IG_BSU00010 4 1
B sub 22 23 IG_BSU00010 0 0
B sub 35 36 IG_BSU00010 0 0
B sub 55 56 IG_BSU00010 0 0
b.txt
感谢。
答案 0 :(得分:0)
KISS解决方案,
a
读取一行,测试EOF并可能突破b
,拆分行,更新la
中的最后两项,输出已连接的元素并编写换行符
a = open('a.csv')
b = open('b.csv')
c = open('c.csv','w')
while True:
la = a.readline()
if not la: break
lb = b.readline()
la = la.split('\t')
lb = lb.split('\t')
la[4] = str(int(la[4])+int(lb[4]))
la[5] = str(int(la[5])+int(lb[5]))
c.write('\t'.join(la)); c.write('\n')
答案 1 :(得分:0)
你可以做这样的事情
target_file = open('a.txt','r')
data_from_a_file = target_file.readlines()
然后你可以用空格分割每一行
formatted_data = [line.split(' ') for line in data_from_a_file]
在formatted_data
中,您将获得列表,其中您的文件的每一行将作为单独的列表显示,例如[['sub', '19', '20'], ['other', 'values']]
。
然后你可以像formatted_data[1][5]
一样轻松访问它 - 这将为你提供第二行的第6个值