猿问

在 Python 中递归地将行附加到目录中的所有文件

我是 Python 新手,正在寻找一些语法帮助。


我有一个带有 *.properties 文件的目录和子目录(超过 100 个文件)。我想在每个文件的末尾附加 2 行文本。


我正在尝试使用 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()

当我运行我提供的脚本时,“test”中的文件没有任何反应


翻过高山走不出你
浏览 199回答 2
2回答

暮色呼如

文件名不是路径。您必须将其目录的路径和文件名连接起来:f = open(os.path.join(parent, fn), 'a')此外,这与您的问题无关,而是:f = open(fn, 'a')&nbsp;&nbsp;f.write("text\n")f.close()一个好的(“pythonic”)风格是:with open(fn, 'a') as f:&nbsp; &nbsp; f.write("text\n")这负责正确关闭文件,即使发生错误。

九州编程

这f = open('fn', 'a')应该是&nbsp;f = open(fn, 'a')
随时随地看视频慕课网APP

相关分类

Python
我要回答