簡體   English   中英

在Python中遞歸地將行追加到目錄中的所有文件

[英]Append Line to All Files in a Directory Recursively in Python

我是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()

運行提供的腳本時,“測試”中的文件沒有任何反應

文件名不是路徑。 您必須將其目錄和文件名的路徑連接起來:

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")

即使發生錯誤,也可以正確關閉文件。

這個f = open('fn', 'a')應該是f = open(fn, 'a')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM