【发布时间】:2011-07-26 14:38:28
【问题描述】:
我有一个数据文件夹,其中包含通过程序运行的每个主题的子文件夹。因此,例如,在数据文件夹中,有 Bob、Fred 和 Tom 的文件夹。这些文件夹中的每一个都包含各种文件和子文件夹。但是,我只对每个主题文件夹中包含的“summary.log”文件感兴趣。
我想将 Bob、Fred 和 Tom 的“summary.log”文件连接到数据文件夹中的单个日志文件中。此外,我想在每个日志文件中添加一列,列出主题编号。
这可以在 Python 中实现吗?或者有更简单的方法吗?我尝试了许多不同批次的代码,但没有一个能完成工作。例如,
#!/usr/bin/python
import sys, string, glob, os
fls = glob.glob(r'/Users/slevclab/Desktop/Acceptability Judgement Task/data/*');
outfile = open('summary.log','w');
for x in fls:
file=open(x,'r');
data=file.read();
file.close();
outfile.write(data);
outfile.close();
给我错误,
Traceback (most recent call last):
File "fileconcat.py", line 8, in <module>
file=open(x,'r');
IOError: [Errno 21] Is a directory
我认为这与数据文件夹包含子文件夹的事实有关,但我不知道如何解决它。我也试过这个,但无济于事:
from glob import iglob
import shutil
import os
PATH = r'/Users/slevclab/Desktop/Acceptability Judgement Task/data/*'
destination = open('summary.log', 'wb')
for filename in iglob(os.path.join(PATH, '*.log'))
shutil.copyfileobj(open(filename, 'rb'), destination)
destination.close()
这会在“for filename”行出现“无效语法”错误,但我不确定要更改什么。
【问题讨论】:
标签: python file logging concatenation