在制表符中将制表符分隔文件中的行块写入新文件

时间:2015-02-26 15:09:28

标签: python csv tsv

我有许多制表符分隔文件,所有文件都有280行,我想在单独的文件中分成标准段。我试着这样做,如下所示,我生成文件,但大多数是空的,其他人有一个非常奇怪的格式(只是在很多地方没有意义的随机数)。我该如何抓住这些行?

for histogram in file_names:
with open(histogram,'rt') as tsvin, open(str(histogram)+"_MidA.csv",'w') as MidA, open(str(histogram)+"_ME.csv",'w') as ME, open(str(histogram)+"_ext.csv",'w') as ext, open(str(histogram)+"_EM.csv",'w') as EM, open(str(histogram)+"_MidB.csv",'w') as MidB, open(str(histogram)+"_MF.csv",'w') as MF, open(str(histogram)+"_flex.csv",'w') as flex, open(str(histogram)+"_FM.csv",'w') as FM:
    tsvin = csv.reader(tsvin, delimiter='\t')
    MidA = csv.writer(MidA)
    ME = csv.writer(ME)
    ext = csv.writer(ext)
    EM = csv.writer(EM)
    MidB = csv.writer(MidB)
    MF = csv.writer(MF)
    flex = csv.writer(flex)
    FM = csv.writer(FM)
    for row in tsvin:
        MidA.writerows(row[1:60])
        ME.writerows(row[61:70])
        ext.writerows(row[71:130])
        EM.writerows(row[131:140])
        MidB.writerows(row[141:200])
        MF.writerows(row[201:210])
        flex.writerows(row[211:270])
        FM.writerows(row[271:280])

1 个答案:

答案 0 :(得分:0)

rowtsvin的一行。 根据{{​​3}}, row是一个字符串列表。

因此row[1:60]指的是文件第一行的第2到第60列。 根据你的第一句话(“我有许多制表符分隔的文件都有280行”)似乎是你的想法。