[英]Write program to merge files and convert to .csv python?
我已经用python编写了一个执行以下操作的程序:
在新文件中写入初始标头
合并新文件中的文件(即,将文件追加到新文件中,我希望将所有日志文件放在一起)
最后将空格分隔的文件转换为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.