0

我正在尝试获取file.txt制表符分隔的字符串)的第一行并创建一个新文件,其中一列由我要提取的行的元素组成。我设法得到文件的第一行

f = open("file.txt", "r")
row1 = f.readline()

我尝试了("new_file.txt", w)转置后,x.T但它没有用。获得文件后,我还应该分成 10 个较小的文件。

这是输入文件的示例:

rs123  rs15  rs1567  rs43  rs567  rs3564
    1     2       3     4      5       6
    7     8       9    10     11      12

这就是我需要的:

rs123
rs15
rs1567
rs43
rs567
rs3564
4

2 回答 2

1
with open('inFile.txt', 'r') as inFile, open('outfile.txt', 'w') as outFile:
    outFile.writelines(line + '\n' for line in inFile.readline().split('\t'))

要将文件拆分成更小的部分,我会使用 unix split,例如:

split -l $lines_per_file outfile.txt

$lines_per_file将总行数wc -l output.txt除以 10。

于 2013-05-20T14:05:21.040 回答
1

您可以使用genfromtxtsavetxt例程:

如果您想保存字符串(根据修改后的问题):

import numpy as np
with open('new_file.txt','w') as f:
   for el in np.genfromtxt('file.txt',dtype=None)[0]:
     f.write(str(el)+'\n')

如果数据是数字:

import numpy as np
x=np.genfromtxt('file.txt')[0] 
np.savetxt('new_file.txt',x) 

你甚至可以将它们组合成一行:

np.savetxt('myfile2.dat',np.genfromtxt('myfile.dat')[0])
于 2013-05-20T15:01:35.327 回答