我需要遍历一系列相同的目录,并将每个目录中的两个.txt文件合并为一个文件。
我尝试使用列表(包括部分列表,总共约1000个目录),但是Python一直将列表变量解释为文件路径中的文本。
import os
for subject in ['100307', '100408', '101107']:
os.chdir("/Users/me/Desktop/SubjPerformance/(subject)")
filenames = ['0bk_nlr.txt', '2bk_nlr.txt']
with open('all_bk_nlr', 'w') as outfile:
for fname in filenames:
with open(fname) as infile:
outfile.write(infile.read())
我一直遇到的错误是:
FileNotFoundError: [Errno 2] No such file or directory: '/Users/me/Desktop/SubjPerformance/(subject)'
很显然,(主题)不是文件路径的一部分。我希望它从列表中取出一个项目,但是它正在将我想成为列表变量的内容解释为文本。
我确定这也可以通过通配符完成,该通配符贯穿/ SubjPerformance中的每个子目录,但我不知道如何构建该循环。
感谢您的帮助,对于这个愚蠢的问题表示抱歉-我是神经科学研究员,而不是开发人员!
答案 0 :(得分:1)
您使用了不正确的语法,请使用
"/Users/me/Desktop/SubjPerformance/%s" % subject
或
"/Users/me/Desktop/SubjPerformance/{}".format(subject)
相反。
答案 1 :(得分:0)
要在字符串中使用变量,可以使用"/Users/me/Desktop/SubjPerformance/%s" % subject
。您可以了解有关字符串格式here的更多信息。