python獲取文件夾下文件夾怎么操作
python獲取文件(jian)夾(jia)下文件(jian)夾(jia)怎么操作
推薦答案
在Python中,你可以使用os模塊來獲取指定(ding)文件(jian)夾下的(de)子文件(jian)夾列表。下面是一種基本的(de)方法來實(shi)現這個(ge)任(ren)務:
import os
# 指定要獲取子文件夾的文件夾路徑
folder_path = "/path/to/your/folder"
# 使用os.listdir()獲取文件夾內所有子文件和子文件夾的列表
entries = os.listdir(folder_path)
# 初始化子文件夾列表
subfolders = []
# 遍歷文件夾的所有條目
for entry in entries:
# 使用os.path.join()構建條目的完整路徑
entry_path = os.path.join(folder_path, entry)
# 檢查條目是否是一個文件夾
if os.path.isdir(entry_path):
# 如果是文件夾,將其添加到子文件夾列表
subfolders.append(entry_path)
# 打印子文件夾列表
print("文件夾下的子文件夾列表為:")
for subfolder in subfolders:
print(subfolder)
以上代碼(ma)中(zhong),我(wo)(wo)們(men)首先指定了要獲取子(zi)(zi)文(wen)(wen)件(jian)(jian)夾的(de)文(wen)(wen)件(jian)(jian)夾路徑(jing)(jing)folder_path。然(ran)后(hou),使(shi)用(yong)os.listdir()函數獲取該文(wen)(wen)件(jian)(jian)夾下所有子(zi)(zi)文(wen)(wen)件(jian)(jian)和子(zi)(zi)文(wen)(wen)件(jian)(jian)夾的(de)列(lie)表(biao)entries。接下來,我(wo)(wo)們(men)遍歷這(zhe)個列(lie)表(biao),通過使(shi)用(yong)os.path.join()函數構建(jian)條目的(de)完整路徑(jing)(jing)entry_path,并檢查每個條目是否(fou)是一個文(wen)(wen)件(jian)(jian)夾。如(ru)果是文(wen)(wen)件(jian)(jian)夾,我(wo)(wo)們(men)將其添加到子(zi)(zi)文(wen)(wen)件(jian)(jian)夾列(lie)表(biao)subfolders中(zhong)。最后(hou),我(wo)(wo)們(men)打(da)印子(zi)(zi)文(wen)(wen)件(jian)(jian)夾列(lie)表(biao)。
通過這個方法(fa),你(ni)可(ke)以獲(huo)取(qu)文件(jian)夾下的所有(you)子文件(jian)夾,將其作為列表進行后(hou)續(xu)處理。
其他答案
-
使用os.walk()函數。這(zhe)個函數可(ke)以遞歸(gui)遍歷文(wen)件夾(jia)及其子文(wen)件夾(jia),并返(fan)回文(wen)件夾(jia)路徑(jing)和其中的文(wen)件/文(wen)件夾(jia)列表。以下是示(shi)例代碼:
import os
# 指定要獲取子文(wen)件夾的文(wen)件夾路(lu)徑
folder_path = "/path/to/your/folder"
# 獲取文件夾及其子(zi)文件夾的路徑和子(zi)文件夾列表
for root, dirs, files in os.walk(folder_path):
# 打印當前(qian)文件夾路(lu)徑
print("當(dang)前文件夾:", root)
# 打印(yin)當前文(wen)件夾(jia)的(de)子文(wen)件夾(jia)列表
print("子文件(jian)夾:", dirs)
在上述代(dai)碼中,我們(men)使用os.walk()函(han)數(shu)來遍歷指定文件(jian)夾(jia)folder_path及其子文件(jian)夾(jia)。在每(mei)次迭代(dai)中,os.walk()函(han)數(shu)返(fan)回當(dang)前文件(jian)夾(jia)的(de)路徑root,以(yi)及當(dang)前文件(jian)夾(jia)下的(de)子文件(jian)夾(jia)列(lie)表dirs和文件(jian)列(lie)表files。我們(men)可以(yi)通過打(da)印這些值來獲(huo)取子文件(jian)夾(jia)的(de)信息。
通過這個(ge)方法(fa),你可以逐個(ge)獲(huo)取文(wen)件(jian)夾(jia)下的子文(wen)件(jian)夾(jia),對其進(jin)行處理或進(jin)一步遍歷(li)。
-
使(shi)用(yong)glob模塊。雖然glob主要(yao)用(yong)于模式匹(pi)配(pei)文件路徑,但它(ta)也可以用(yong)于獲取文件夾路徑。以下是示例代碼:
import glob
# 指定(ding)要獲取子文件夾(jia)的文件夾(jia)路徑
folder_path = "/path/to/your/folder"
# 使用(yong)glob模(mo)塊(kuai)獲取(qu)匹配子文件夾(jia)的列表
subfolder_list = glob.glob(os.path.join(folder_path, "*"))
# 過濾出真實的子文件夾(jia)
subfolders = [subfolder for subfolder in subfolder_list if os.path.isdir(subfolder)]
# 打印子文件夾列表
print("文(wen)件夾(jia)(jia)下的子(zi)文(wen)件夾(jia)(jia)列(lie)表為:")
for subfolder in subfolders:
print(subfolder)
在上(shang)述(shu)代碼(ma)中(zhong),我(wo)(wo)(wo)(wo)們使(shi)用(yong)glob.glob()函(han)數(shu)來(lai)獲(huo)取指定文(wen)(wen)(wen)件(jian)(jian)夾(jia)下所有(you)的子(zi)文(wen)(wen)(wen)件(jian)(jian)夾(jia)路(lu)(lu)徑。我(wo)(wo)(wo)(wo)們通過(guo)使(shi)用(yong)os.path.join()函(han)數(shu)將(jiang)文(wen)(wen)(wen)件(jian)(jian)夾(jia)路(lu)(lu)徑和通配符*組合在一起,以匹配所有(you)子(zi)文(wen)(wen)(wen)件(jian)(jian)夾(jia)。然后,我(wo)(wo)(wo)(wo)們使(shi)用(yong)列(lie)表(biao)(biao)推導式(shi)對返(fan)回的路(lu)(lu)徑列(lie)表(biao)(biao)進行過(guo)濾,只保留真實的子(zi)文(wen)(wen)(wen)件(jian)(jian)夾(jia)路(lu)(lu)徑。最后,我(wo)(wo)(wo)(wo)們打印子(zi)文(wen)(wen)(wen)件(jian)(jian)夾(jia)列(lie)表(biao)(biao)。
通過這個(ge)方法,你可(ke)以使用(yong)glob模(mo)塊獲(huo)取(qu)文(wen)件(jian)夾(jia)(jia)下(xia)的子文(wen)件(jian)夾(jia)(jia)列表,并進一步處理(li)這些子文(wen)件(jian)夾(jia)(jia)。
