tft每日頭條

 > 科技

 > python常見文件的三個操作

python常見文件的三個操作

科技 更新时间:2024-11-19 14:29:18

20221208星期四:


# os方式一:通過遞歸調用,拿到所有文件,或者指定結尾的文件:

# os方式二:通過 os.walk ,拿到目錄下所有的目錄及文件:

# pathlib方式三:通過 rglob 方法:獲取文件夾下(以及子文件夾)所有文件,返回文件路徑列表;

# pathlib方式四:同上,使用列表推導式方式:

pathlib方式五:通過 glob 方法:獲取文件夾下(不含子文件夾)所有文件,返回文件路徑列表;

import os from pathlib import Path path = r'F:\filePath'

# os方式一:

# 通過遞歸調用,拿到所有文件,或者指定結尾的文件:

# os方式一: # 通過遞歸調用,拿到所有文件,或者指定結尾的文件: listfileAll = [] def getAllDirRE(path): # 得到當前目錄下的所有目錄及文件: filesList = os.listdir(path) # 處理每一個文件: for fileName in filesList: # 判斷是否是路徑(用絕對路徑): fileabsPath = os.path.join(path,fileName) if os.path.isdir(fileabsPath): # 遞歸調用: getAllDirRE(fileabsPath) else: # 拿到 .xlsx 結尾的文件: if fileName.endswith(".xlsx"): listfileAll.append(fileabsPath) getAllDirRE(path) print('listfileAll:',len(listfileAll),listfileAll)

# os方式二:

# 通過 os.walk ,拿到目錄下所有的目錄及文件:

# os方式二: # 通過 os.walk ,拿到目錄下所有的目錄及文件: pathWalk = os.walk(path) listWalkAll = [] for root,dirs,files in pathWalk: """root: F:\filePath root: F:\filePath\fileNew root: F:\filePath\fileNew\fileThre """ # print('root:',root) # 篩除空的列表: if files: for i in files: # 篩選 .xlsx 文件,且不為 __init__.py: if i.endswith('.xlsx') and i != '__init__.py': listWalkAll.append(os.path.join(root,i)) print('listWalkAll:',len(listWalkAll),listWalkAll)

# pathlib方式三:

# 通過 rglob 方法:獲取文件夾下(以及子文件夾)所有文件,返回文件路徑列表;

# pathlib方式三: # 通過 rglob 方法:獲取文件夾下(以及子文件夾)所有文件,返回文件路徑列表; folder = Path(path.strip()) result = folder.rglob(f"*.*") # 也可以寫成 result = list(folder.rglob(f"*.*")) # result: <class 'generator'> <generator object Path.rglob at 0x000002227CCC82E0> print('result:',type(result),result) result01 = [] for i in result: # i: <class 'pathlib.WindowsPath'> F:\filePath\anaconda鏡像下載.txt # print('i:',type(i),i) result01.append(str(i)) # result01: <class 'list'> 10 print('result01:',type(result01),len(result01),result01)

# pathlib方式四:

# 使用列表推導式方式:

# 通過 rglob 方法:獲取文件夾下(含子文件夾)所有文件,返回文件路徑列表;

# pathlib方式四: # 使用列表推導式方式: # 通過 rglob 方法:獲取文件夾下(含子文件夾)所有文件,返回文件路徑列表; result02 = [str(f) for f in folder.rglob("*.*") if Path(f).is_file()] # result01: <class 'list'> 10 print('result02:',type(result02),len(result02),result02)

# pathlib方式五:

# 使用列表推導式方式:

# 通過 glob 方法:獲取文件夾下(不含子文件夾)所有文件,返回文件路徑列表;

# pathlib方式五: # 使用列表推導式方式: # 通過 glob 方法:獲取文件夾下(不含子文件夾)所有文件,返回文件路徑列表; # 即,子文件的文件不會獲取 result03 = [str(f) for f in folder.glob("*.*") if Path(f).is_file()] # result01: <class 'list'> 5 print('result03:',type(result03),len(result03),result03)

""" 相對于傳統的os及os.path,pathlib具體如下優勢: pathlib實現統一管理,解決了傳統操作導入模塊不統一問題; pathlib使得在不同操作系統之間切換非常簡單; pathlib是面向對象的,路徑處理更靈活方便,解決了傳統路徑和字符串并不等價的問題; pathlib簡化了很多操作,簡單易用。 """

python常見文件的三個操作(Python文件遍曆之ospathlib)1

python常見文件的三個操作(Python文件遍曆之ospathlib)2

python常見文件的三個操作(Python文件遍曆之ospathlib)3

python常見文件的三個操作(Python文件遍曆之ospathlib)4

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved