os.walk我們有多個Linux服務器,我想獲得在特定的Linux服務器的文件和目錄的所有細節。我知道這可以用os.walk函數來完成,但它只存儲單個文件信息。請找到下面的代碼提前遍歷在linux
Q
遍歷在linux
1
A
回答
6
你可以使用一個上下文管理
import os
with open('/home/david/Desktop/datafile.txt', 'w') as F:
for d in os.walk('/'):
F.write(str(d) + '\n')
4
import os
for d in os.walk('/'):
F = open('/home/david/Desktop/datafile.txt', 'w')
F.write(str(d) + '\n')
F.close()
感謝您應該追加到該文件,而不是僅僅寫它(這重置每次你打開它時該文件的內容)。要啓用附加模式,請通過a
而不是w
。
但是,沒有必要這樣做 - 只需打開文件一次並繼續寫入,而不是每次循環迭代都重新打開文件句柄(這是極大的浪費時間!)。
F = open('/home/david/Desktop/datafile.txt', 'w')
for d in os.walk('/'):
F.write(str(d) + '\n')
F.close()
你也可以使用一個with
語句來,它爲您自動完成close()
。
with open(...) as F:
for d in ..
...
2
重新創建每個迭代在同一文件內沒有任何意義。您可以在循環外部移動open(),也可以使用append-mode'a'重新打開循環內的文件。
2
,因爲你的文件寫入不被追加你得到只有一個入口,它們是從頭開始創建的文件。
另請參閱os.walk()
的文檔。文件訪問的每個文件夾中的列表中給出:
import os
f=file(r'/home/david/Desktop/datafile.txt', 'a') # <---- Note "a"
for root, files, dirs in os.walk('/'):
f.write('Currently in: ' + root + '\n')
f.write(' '*4 + 'Files:\n')
for ff in files:
f.write(' '*8 + ff + '\n')
f.write(' '*4 + 'Folders:\n')
for ff in dirs:
f.write(' '*8 + ff + '\n')
相關問題
- 1. 遍歷樹遍歷
- 2. Linux內核 - 遍歷緩衝區頭
- 3. 遍歷在PHP
- 4. 遍歷在Go
- 5. 遍歷在Python
- 6. 遍歷在Python
- 7. 遍歷在JavaScript
- 8. 遍歷在Python
- 9. 遍歷在Python
- 10. 遍歷在Java
- 11. 遍歷在Signalr
- 12. 遍歷
- 13. 遍歷
- 14. 在樹中遍歷
- 15. 遍歷在哈希
- 16. 定義在遍歷
- 17. 遍歷XML在PHP
- 18. 在Vb.NET中遍歷
- 19. 遍歷CompactBuffer在RDD
- 20. Json遍歷問題,無法遍歷值
- 21. DOM遍歷的AJAX調用遍歷
- 22. 遍歷task_struct->在linux內核中的子節點
- 23. 請告訴網絡數據包遍歷在linux
- 24. 在Python中遍歷n遍歷樹並返回節點實例
- 25. Python - 遍歷類
- 26. jQuery遍歷p
- 27. 遍歷鏈表
- 28. 遍歷多行
- 29. SQL樹遍歷
- 30. 的jQuery遍歷