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