使用python将几个.txt文件中的数据整理到一个.csv文件中

时间:2015-08-13 21:32:44

标签: python csv

我有一堆文本文件,每个文件都包含一些数据。我想整理这些数据然后写一个包含所有数据的新文件。

预期产量: 给定目录中包含相同大小输出的文本文件列表,以便将此信息收集到单个文件中。

例如。如果text_file1.txt包含:

A B C
2 7 8

text_file2.txt包含:

A B C
3 6 9

和text_file3.txt包含:

A B C
3 6 8

result.csv应如下所示:

A B C 
2 7 8
3 6 9
3 6 8

到目前为止我的代码

import os
import glob
import re
import pandas

def collate_PE_results(self,directory,qualifier,outfile):
    os.chdir(directory) #cd to directory
    all_files=os.listdir(directory) #list all the files in this directory
    text_files=glob.glob('*.txt') # select text files only
    for i in range(1,len(text_files)): #iterate over all the text files
        p = re.compile(qualifier) #compile a string to search in the text file
        if p.search(text_files[i]): #search for the qualifier in the text file
            with open(text_files[0]) as f: # first match initiates the data frame
                df = pandas.read_csv(text_files[0],sep='\t')
        else:
            df.append(pandas.read_csv(text_files[i]),sep='\t') # the rest of the matches are appended onto the bottom of the growing dataframe
    df.to_csv(outfile,sep=',',header=df.keys())

此代码运行并写入.csv文件,但包含错误的信息 - 即第2行没有标题的单行数据。任何人都可以建议如何修改我的代码以获得我想要的东西吗?感谢

--------------- ---------------------编辑

要调用此函数,我正在创建父类的实例

CT=Copasi_Tools.Cluster_Tools()

然后:

CT.collate_PE_results(directory,qualifier='Result',outfile) #Each file containing information has the word 'Result' in the file name

0 个答案:

没有答案