我有大量包含数据的文本文件,这些数据排列成固定数量的行和列,列之间用空格分隔。(如 .csv 但使用空格作为分隔符)。我想从每个文件中提取给定的列,并将其写入一个新的文本文件。
到目前为止,我已经尝试过:
results_combined = open('ResultsCombined.txt', 'wb')
def combine_results():
for num in range(2,10):
f = open("result_0."+str(num)+"_.txt", 'rb') # all the text files have similar filename styles
lines = f.readlines() # read in the data
no_lines = len(lines) # get the number of lines
for i in range (0,no_lines):
column = lines[i].strip().split(" ")
results_combined.write(column[5] + " " + '\r\n')
f.close()
if __name__ == "__main__":
combine_results()
这会生成一个文本文件,其中包含我想要从单独文件中获取的数据,但作为单列。(即我已经设法将这些列“堆叠”在一起,而不是将它们作为单独的列并排放置)。我觉得我错过了一些明显的东西。
在另一次尝试中,我设法将所有单独的文件写入一个文件,但没有选择我想要的列。
import glob
files = [open(f) for f in glob.glob("result_*.txt")]
fout = open ("ResultsCombined.txt", 'wb')
for row in range(0,488):
for f in files:
fout.write( f.readline().strip() )
fout.write(' ')
fout.write('\n')
fout.close()
我基本上想要的是从每个文件中复制第 5 列(它始终是同一列)并将它们全部写入一个文件。