我是Python的新手,正在寻找语法帮助。
我有一个目录和带有* .properties文件(超过100个文件)的子目录。我想在每个文件的末尾附加两行文本。
我正在尝试使用os.walk和f.write,但是不确定如何将两者结合起来。在下面的代码中,我也尝试通过添加1行文本开始,但是我希望文本为2行。
import os
dir_name = "C:\\Users\\<user>\\Desktop\\test\\" # Edit as needed
for parent, dirnames, filenames in os.walk(dir_name):
for fn in filenames:
f = open(fn, 'a')
f.write("text\n")
f.close()
运行提供的脚本时,“测试”中的文件没有任何反应
答案 0 :(得分:2)
文件名不是路径。您必须将其目录和文件名的路径连接起来:
f = open(os.path.join(parent, fn), 'a')
此外,这与您的问题无关,而是:
f = open(fn, 'a')
f.write("text\n")
f.close()
要做一个好的(“ pythonic”)样式:
with open(fn, 'a') as f:
f.write("text\n")
即使发生错误,它也可以正确关闭文件。
答案 1 :(得分:0)
此f = open('fn', 'a')
应该是f = open(fn, 'a')