Python:将多个.log文件转换为.csv
我有174个Python:将多个.log文件转换为.csv,python,csv,logging,Python,Csv,Logging,我有174个.log文件需要转换成.csv。我是Python的中级初学者,但我想创建一些代码来在循环中完成它,而不是手动完成。所有输入文件都在一个文件夹中 我使用了课程和其他论坛的一些指针,下面的代码在输出文件夹中创建文件,但它们是空的。我想知道问题是否是由于同时使用'open'read/write&Pandascsv\u read/df.to\u csv造成的 我是遗漏了什么还是这里有错?我将感谢任何帮助和指点!我已经盯着它看了好几天了 正如我所说,我是一个初学者,只想通过学习Python使生
.log
文件需要转换成.csv
。我是Python的中级初学者,但我想创建一些代码来在循环中完成它,而不是手动完成。所有输入文件都在一个文件夹中
我使用了课程和其他论坛的一些指针,下面的代码在输出文件夹中创建文件,但它们是空的。我想知道问题是否是由于同时使用'open'
read/write&Pandascsv\u read/df.to\u csv
造成的
我是遗漏了什么还是这里有错?我将感谢任何帮助和指点!我已经盯着它看了好几天了
正如我所说,我是一个初学者,只想通过学习Python使生活变得更轻松:)
试试这个:
directory = input("Input folder:")
output = input("Output folder:")
txt_files = os.path.join(directory, '*.log')
for txt_file in glob.glob(txt_files):
in_txt = pd.read_csv(input_file, names=['Subject','Trial','Event Type','Code','Time','TTime','Uncertainty','Duration','Uncertainty_1','ReqTime','ReqDur','Stim Type','Pair Index'], skiprows=1, delimiter='\t')
df = pd.DataFrame(in_txt,columns=['Subject','Trial','Event Type','Code','Time','TTime','Uncertainty','Duration','Uncertainty_1','ReqTime','ReqDur','Stim Type','Pair Index'])
filename = os.path.splitext(os.path.basename(txt_file))[0] + '.csv'
filename = os.path.join(output, filename)
df.to_csv(filename, index=False)
将open(os.path.join(output,filename),'wb')作为输出文件:如果
输出文件
从未在with
块中使用,那么有什么意义?我认为你可以把和一起删除,只留下df。为了调试和测试,你应该删除循环,关注1个文件,然后一步一步地工作,直到你发现异常(即你的内容是空的)。此外,正如@ForceBru所提到的,您从未使用您想要编写的实际文件in@ForceBru我想更像是df.to_csv(os.path.join(output,filename),index=False)
。下面的答案有用吗?请打印filename
变量并检查它是否正确获取值。解决了问题。我错过了os.path.join
这件事。已经更新。现在应该可以用了。请检查。实际上现在,所有输出文件都没有出现。您可以只打印filename
变量,看看文件名是否正确吗?我已经重新启动了Jupyter,它现在似乎可以工作了!非常感谢。
directory = input("Input folder:")
output = input("Output folder:")
txt_files = os.path.join(directory, '*.log')
for txt_file in glob.glob(txt_files):
in_txt = pd.read_csv(input_file, names=['Subject','Trial','Event Type','Code','Time','TTime','Uncertainty','Duration','Uncertainty_1','ReqTime','ReqDur','Stim Type','Pair Index'], skiprows=1, delimiter='\t')
df = pd.DataFrame(in_txt,columns=['Subject','Trial','Event Type','Code','Time','TTime','Uncertainty','Duration','Uncertainty_1','ReqTime','ReqDur','Stim Type','Pair Index'])
filename = os.path.splitext(os.path.basename(txt_file))[0] + '.csv'
filename = os.path.join(output, filename)
df.to_csv(filename, index=False)