我正在尝试获取file.txt
( tab 分隔的字符串)的第一行,并创建一个包含一列的新文件,该列由我想要的行的元素组成提取。我设法用
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
答案 0 :(得分: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。
答案 1 :(得分:1)
您可以使用genfromtxt和savetxt例程:
如果你想保存字符串(根据修正的问题):
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])