固定数の行と列に配置されたデータを含む多数のテキストファイルがあり、列はスペースで区切られています。(.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()
これにより、個別のファイルから必要なデータを含むテキストファイルが、単一の列として生成されます。(つまり、列をすべて別々の列として並べるのではなく、列を互いに「積み重ねる」ことができました)。明らかなことを見逃した気がします。
別の試みでは、必要な列を選択せずに、すべての個別のファイルを1つのファイルに書き込むことができます。
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をコピーして、それらすべてを1つのファイルに書き込むことです。