os
模塊是 Python 標準庫中用于與操作系統交互的核心模塊,提供了許多操作文件和目
錄的函數。
1. 基本介紹
os
模塊提供了以下主要功能:
- 文件和目錄操作
- 路徑操作
- 進程管理
- 環境變量訪問
import os
2. 常用功能分類
2.1 文件和目錄操作
函數/方法 | 描述 |
---|---|
os.getcwd() | 獲取當前工作目錄 |
os.chdir(path) | 改變當前工作目錄 |
os.listdir(path='.') | 列出指定目錄下的文件和子目錄 |
os.mkdir(path) | 創建單個目錄 |
os.makedirs(path) | 遞歸創建多級目錄 |
os.remove(path) | 刪除文件 |
os.rmdir(path) | 刪除空目錄 |
os.removedirs(path) | 遞歸刪除空目錄 |
os.rename(src, dst) | 重命名文件或目錄 |
2.2 路徑操作
函數/方法 | 描述 |
---|---|
os.path.abspath(path) | 返回絕對路徑 |
os.path.basename(path) | 返回路徑中的文件名部分 |
os.path.dirname(path) | 返回路徑中的目錄部分 |
os.path.exists(path) | 檢查路徑是否存在 |
os.path.isfile(path) | 檢查是否是文件 |
os.path.isdir(path) | 檢查是否是目錄 |
os.path.join(path1, path2, ...) | 拼接路徑 |
os.path.split(path) | 分割路徑為目錄和文件名 |
os.path.splitext(path) | 分割路徑為文件名和擴展名 |
2.3 系統信息
函數/方法 | 描述 |
---|---|
os.name | 操作系統名稱 (‘posix’, ‘nt’, ‘java’) |
os.environ | 系統環境變量字典 |
os.getenv(key) | 獲取指定環境變量值 |
os.cpu_count() | 返回CPU數量 |
os.urandom(n) | 生成n字節的隨機字節 |
3. 實用示例
3.1 遍歷目錄
# 列出當前目錄下所有.py文件
for filename in os.listdir('.'):if filename.endswith('.py'):print(filename)
3.2 創建目錄結構
# 創建多級目錄
if not os.path.exists('project/data'):os.makedirs('project/data')
3.3 路徑操作
# 獲取當前腳本所在目錄
script_dir = os.path.dirname(os.path.abspath(__file__))
print(f"腳本所在目錄: {script_dir}")# 構建新路徑
data_path = os.path.join(script_dir, 'data', 'input.txt')
print(f"完整路徑: {data_path}")
3.4 文件信息
# 檢查文件是否存在并獲取大小
if os.path.isfile('example.txt'):size = os.path.getsize('example.txt')print(f"文件大小: {size} 字節")
4. 注意事項
- 跨平臺兼容性:不同操作系統路徑分隔符不同,建議始終使用
os.path.join()
拼接路徑 - 權限問題:操作文件/目錄時要注意程序是否有足夠權限
- 異常處理:文件操作可能拋出異常,建議使用
try-except
處理 - 路徑標準化:使用
os.path.normpath()
可以規范化路徑
5. 進階用法
5.1 遞歸遍歷目錄
for root, dirs, files in os.walk('.'):print(f"當前目錄: {root}")print(f"子目錄: {dirs}")print(f"文件: {files}")
5.2 執行系統命令
# 執行系統命令并獲取輸出
output = os.popen('ls -l').read()
print(output)
5.3 臨時文件操作
import tempfile# 創建臨時文件
temp_file = tempfile.mkstemp()
print(f"臨時文件: {temp_file}")
希望這份指南能幫助你掌握 os
模塊的基本用法!在實際開發中,os
模塊經常與其他 模塊如 shutil
、glob
等配合使用。