2011-08-25 79 views

回答

8

您可以使用os.walk遍歷目錄。 (以下未經測試,請親自試驗)

for r, d, f in os.walk(path): 
    os.chmod(r, 0o777) 
+0

好一個!我可以證實它對我有用。訣竅是'topdown'默認爲'True'。我擔心它會嘗試走過它沒有權限的目錄。 –

+0

其實我錯了 - 我沒有正確測試它:它chmods應該是chmoding的目錄的父目錄。下面我的回答確實對我有用。 –

1

ghostdog74的回答幾乎可行,但它試圖在chmods之前進入目錄。所以,真正的答案是那麼優雅:

os.chmod(path , 0o777) 
for root,dirs,_ in os.walk(path): 
    for d in dirs : 
     os.chmod(os.path.join(root,d) , 0o777) 
+0

什麼文件? – user299709

+0

我會明確地chmod它們在內部循環中。您的文件通常需要來自目錄的不同權限,因此在兩行單獨的代碼中執行它們是有意義的。 –

0

一個行版本是這樣的:

list(map(lambda x: os.chmod(x[0], 0o775), os.walk(target_dir)))