Open Pin-Jiun opened 1 year ago
使用os.walk() 遞迴印出資料夾中所有目錄及檔名
/python/demo/
|-- os_walk.py
|-- root
| |-- 1file
| |-- 2subDir
| | |-- 21file
| | |-- 22subDir
| | | -- 221file | |
-- 23file
| |-- 3file
| -- 3subDir |
-- 31file
`-- walk.py
4 directories, 8 files
import os
for dirPath, dirNames, fileNames in os.walk("/python/demo/"):
print dirPath
for f in fileNames:
print os.path.join(dirPath, f)
讀取資料夾底下的檔案名稱
import os
folder_path = "/your/folder/path"
# 列出資料夾中的所有檔案和目錄
files = os.listdir(folder_path)
# 過濾出檔案名稱,排除目錄
file_names = [file for file in files if os.path.isfile(os.path.join(folder_path, file))]
print(file_names)
這裡的 folder_path 是您想要讀取的資料夾路徑。listdir 返回資料夾中所有檔案和目錄的列表,然後使用列表理解式過濾出只包含檔案的部分。
請替換 "/your/folder/path" 為您實際的資料夾路徑。
import os
folder_path = "/your/folder/path"
# 列出資料夾中的所有檔案和目錄
files = os.listdir(folder_path)
# 過濾出只有檔案名稱且不帶副檔名的部分
file_names_without_extension = [os.path.splitext(file)[0] for file in files if os.path.isfile(os.path.join(folder_path, file))]
print(file_names_without_extension)
下方列出幾種 os 模組常用的方法 ( 參考 Python 官方文件:os 多種操作系統接口 ):
方法 | 參數 | 說明 -- | -- | -- getcwd() | | 取得目前程式的工作資料夾路徑 chdir() | path | 改變程式的工作資料夾路徑 mkdir() | folder | 建立資料夾 rmdir() | folder | 刪除空資料夾 listdir() | folder | 列出資料夾裡的內容 open() | file, mode | 開啟檔案 write() | string | 寫入內容到檔案 rename() | old, new | 重新命名檔案 remove() | file | 刪除檔案 stat() | file | 取得檔案的屬性 close() | file | 關閉檔案 path | | 取得檔案的各種屬性 system | | 執行系統命令 ( 等同使用 cmd 或終端機輸入指令 )「./」是代表目前所在目錄 「../」是代表上一層目錄,若目前已經是根目錄則依然為目前所在目錄 「/」在各個目錄名稱之間的分隔符號,如果放置在路徑之前則代表根目錄
os.path.basename(file_path)
去除目錄的路徑,回傳檔案名稱(包含附檔名)
建立目錄,path可以為絕對或相對路徑
建立path目錄(只能建立一級目錄,如'D:\AAA\BBB'),在AAA(已存在)目錄下建立BBB(新增的資料夾)目錄
建立多級目錄(如'D:\AAA\BBB\CCC\DDD'),可以在D槽下建立AAA目錄, 繼續在AAA目錄下建立BBB目錄,在BBB目錄下建立CCC目錄,在CCC目錄下建立DDD目錄
檢查路徑是否存在
若只是想要查看特定的路徑是否存在,不分檔案或目錄,則可使用 os.path.exists
如果取出的檔案名稱不想要包含附檔名的話可以使用 split 切割字串來去除副檔名
你也可以使用 os.path.splitext() 來達成同樣的效果
檔案路徑地址拼接
https://shengyu7697.github.io/python-os-path-basename/