python==os模組
阿新 • • 發佈:2018-11-25
1 簡介
os模組提供使用作業系統相關功能的便捷方式。
2 目錄結構
|-- pymodel
| |-- images
| | |-- Leon.png
| | |-- Liuxiang.png
| | |-- Lo.png
| | |-- Mac.png
| | |-- Mayun.png
| | |-- Yao.png
| | `-- secondImages
| | `--Yao.png
| `-- osTest.py
3 獲取絕對路徑
import os
base_dir = os. path.abspath(os.path.dirname(__name__))
# 結果
/home/xdq/xinPrj/python/pymodel
4 獲取檔名稱
4.1 屬性
- os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
(1) top根目錄下的每一個資料夾,產生一個元組(dirpath, dirnames, filenames即資料夾相對路徑,資料夾名稱,檔名);
(2) topdown可選,True目錄元組自上而下遍歷,False自下而上遍歷;
(3) onerror可選,是函式,呼叫時有一個引數,一個OSError例項,報告錯誤後,繼續walk或丟擲exception終止walk;
(4) followlinks,True通過軟連結訪問目錄;
import os
fileInfo = os.walk("image")
print(type(fileInfo))
print(fileInfo)
# 結果:generator類,walk物件
<class 'generator'>
<generator object walk at 0x7fd5c2da1990>
4.2 獲取資料夾及檔名
import os
def file_name(file_dir):
for root, dirs, files in os.walk(file_dir):
print("root:{}".format( root))
print("dirs:{}".format(dirs))
print("files:{}".format(files))
file_name("images")
# root: 相對檔案路徑
# dir: 資料夾
# filename: 檔名
# 結果
root:images
dirs:['secondImages']
files:['Mayun.png', 'Lo.png', 'Leon.png', 'Mac.png', 'Yao.png', 'Liuxiang.png']
root:images/secondImages
dirs:[]
files:['Yao.png']
4.3 獲取檔名及副檔名
- os.path.splitext(file)
分割檔名及副檔名,返回為元組
import os
def split(file_dir):
fileNames = []
extensionNames = []
for root, dirs, files in os.walk(file_dir):
for file in files:
fileName, extensionName = os.path.splitext(file)
fileNames.append(fileName)
extensionNames.append(extensionName)
print(fileNames)
# 列表去重
extensionNames = list(set(extensionNames))
print(extensionNames)
split("images")
# 結果
file name:['Mayun', 'Lo', 'Leon', 'Mac', 'Yao', 'Liuxiang', 'Yao']
extension name:['.png']
4.4 獲取當前資料夾下的所有檔案及資料夾
- os.listdir(path)
返回當前當前資料夾下的所有檔案及資料夾列表
import os
fileNames = os.listdir("images")
print(type(fileNames))
print(fileNames)
# 結果
<class 'list'>
['Mayun.png', 'Lo.png', 'secondImages', 'Leon.png', 'Mac.png', 'Yao.png', 'Liuxiang.png']
4.5 拼接路徑
- os.path.join(path1[,path2[, …]])
返回拼接路徑列表
def join(file_dir):
joinPaths = []
for root, dirs, files in os.walk(file_dir):
for file in files:
joinPath = os.path.join(root, file)
joinPaths.append(joinPath)
print("joinPaths:{}".format(joinPaths))
join("images")
# 結果
joinPaths:['images/Mayun.png', 'images/Lo.png', 'images/Leon.png', 'images/Mac.png', 'images/Yao.png', 'images/Liuxiang.png', 'images/secondImages/Yao.png']