1. 程式人生 > >python==os模組

python==os模組

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']