import os
for folderName, subFolders, fileNames in os.walk('C:\Home\Homework\Folders'):
for file in fileNames:
print(folderName, os.path.join(folderName, file))
假設有 3 個檔案夾,分別命名為 1、2 和 3,它們位于C:\Home\Homework\Folders.
我想要一個腳本來創建一個串列或表格,例如:
| 檔案夾 | 檔案鏈接 |
|---|---|
| 一 | C:\Home\Homework\Folders\One\sample.pdf。 |
| 一 | C:\Home\Homework\Folders\One\sample.txt |
| 二 | C:\Home\Homework\Folders\Two\test1.pdf |
| 二 | C:\Home\Homework\Folders\Two\test.csv |
| 三 | C:\Home\Homework\Folders\Three\excel.xlsx |
我的最終目標是將串列匯出到 CSV 檔案。
uj5u.com熱心網友回復:
正如我在評論中提到的,我不清楚您是否也打算遍歷子目錄。如果是這樣,您將需要不同的解決方案。
我相信以下內容可以完成您的任務,但是我沒有測驗此代碼。
import os
import csv
# Open your output file in a context manager
with open("my_output.csv", "w", newline="") as output_file:
# Create a DictWriter instance using your output file and your desired header
writer = csv.DictWriter(output_file, fieldnames=("Folder", "File Link"))
# Write the header to the file
writer.writeheader()
# Walk the target directory
for folder_name, _, file_names in os.walk('C:\Home\Homework\Folders'):
for file_name in file_names:
file_link = os.path.join(folder_name, file_name)
# Construct a dict whose keys match the `fieldnames` from earlier
writer.writerow({"Folder": folder_name, "File Link": file_link})
注意_頂層for回圈中的 。這是因為,據我了解您的問題,您似乎不想走子目錄。_在 Python 中用作變數名是向閱讀您的代碼的其他人表示您不關心該值并且不打算在任何地方使用它的傳統方式。在這種情況下_,將是目錄名稱串列(如果給定目錄中沒有子目錄,則為空C:\Home\Homework\Folders)。
例如,假設您的檔案結構是
C/
Home/
Homework/
Folders/
One/
sample.pdf
sample.txt
SomeSubDirectory/
some_file.py
你不會發現some_file.py,因為我們沒有走路SomeSubDirectory。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517672.html
