繁体   English   中英

编写程序以合并文件并转换为.csv python?

[英]Write program to merge files and convert to .csv python?

我已经用python编写了一个执行以下操作的程序:

  1. 在新文件中写入初始标头

  2. 合并新文件中的文件(即,将文件追加到新文件中,我希望将所有日志文件放在一起)

  3. 最后将空格分隔的文件转换为csv。

我要做的是提及我的文件应位于的输出目录,以及一个文件列表,其中包含应合并的每个文件的位置,如下所示:

/Users/ra/Documents/Dryad01/meow.log
/Users/ra/Documents/Dryad01/meow1.log

然后我做python program.py path_to_list_file output_dir

这是我的程序:

import csv


def main():

    parser = argparse.ArgumentParser()
    parser.add_argument("filelist", help="Format: Value File in each line")
    parser.add_argument("output_dir", help="output directory")
    args = parser.parse_args()

    # write header
    fout = open(args.output_dir+"merged.txt","a")
    fout.write("timestamp         type       response_time")

    #from each file get the data and put it in fout/merge

    with open(args.filelist) as f:
        for file in f:
            file_read = open(file)
            for line in file_read:
                fout.write(line)

    fout.close()
    #now all file in filelist have been merged
    #next make them into csv files
    make_csv(args.output_dir+"merged.txt",args.output_dir+"merged_csv.csv")


def make_csv(file1,file2):
    with open(file1) as fin, open(file2, 'w') as fout:
        o=csv.writer(fout)
        for line in fin:
            o.writerow(line.split())

但是由于某种原因,我没有错误 ,没有警告, 但没有文件 你觉得错什么?

您是否可能忘记了源文件末尾的以下主要模式?

if __name__ == '__main__':
    main()

如果是这样,您的main()函数将永远不会被调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM