欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?os?模塊與路徑從基礎(chǔ)到實戰(zhàn)應(yīng)用

 更新時間:2025年08月22日 16:07:51   作者:qwerty12ljhxjdj  
本文詳解Python中os模塊與路徑處理,涵蓋目錄創(chuàng)建、遍歷、刪除及文件操作,提供日志管理、數(shù)據(jù)備份等實戰(zhàn)案例,強(qiáng)調(diào)跨平臺兼容與異常處理最佳實踐,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

在 Python 開發(fā)中,文件和目錄的操作是必不可少的技能。無論是數(shù)據(jù)處理、日志記錄還是程序配置,都需要與文件系統(tǒng)交互。Python 的os模塊和os.path子模塊提供了豐富的接口,能夠輕松實現(xiàn)目錄創(chuàng)建、文件刪除、路徑處理等功能。本文將結(jié)合實例代碼,詳細(xì)講解這些模塊的核心用法。

一、路徑基礎(chǔ):理解路徑表示方式

在開始操作文件系統(tǒng)前,首先需要掌握路徑的表示方法:

  • ./:表示當(dāng)前目錄(即運(yùn)行腳本所在的目錄)
  • ../:表示上一級目錄
  • 不同操作系統(tǒng)的路徑分隔符不同(Windows 用\,Linux/macOS 用/),可通過os.sep獲取當(dāng)前系統(tǒng)的分隔符

二、os 模塊核心功能:目錄與文件操作

os模塊提供了直接與操作系統(tǒng)交互的功能,涵蓋目錄創(chuàng)建、查看、刪除等常用操作。

1. 獲取當(dāng)前工作目錄與路徑分隔符

import os
# 獲取當(dāng)前工作目錄(絕對路徑)
print(os.getcwd())  # 示例輸出:C:\project\demo
# 獲取當(dāng)前系統(tǒng)的路徑分隔符(Windows為\,Linux/macOS為/)
print(os.sep)  # 示例輸出:\(Windows系統(tǒng))

2. 目錄創(chuàng)建:os.makedirs()

os.makedirs()支持遞歸創(chuàng)建目錄(即同時創(chuàng)建多級目錄),無需手動逐級創(chuàng)建父目錄。

# 遞歸創(chuàng)建單級子目錄
os.makedirs('./data/sub3')  # 在當(dāng)前目錄創(chuàng)建data目錄,再在其中創(chuàng)建sub3目錄
# 遞歸創(chuàng)建多級子目錄
os.makedirs('./data/b3/c5')  # 創(chuàng)建data/b3/c5三級目錄

注意:如果目錄已存在,再次調(diào)用會報錯??商砑?code>exist_ok=True參數(shù)避免錯誤:

os.makedirs('./data/sub3', exist_ok=True)  # 目錄存在時不報錯

3. 目錄查看:os.listdir()與os.walk()

(1)os.listdir():查看單層目錄

返回指定目錄下的所有子目錄和文件(僅顯示一級,不遞歸)。

# 查看./data目錄下的內(nèi)容
print(os.listdir('./data'))  
# 示例輸出:['sub3', 'b3'](假設(shè)data目錄下有這兩個子目錄)

(2)os.walk():遞歸遍歷目錄

os.walk()是一個生成器,可遞歸遍歷目錄樹,返回每個目錄的三元組(當(dāng)前目錄路徑, 子目錄列表, 文件列表)

# 遞歸遍歷./data目錄
gen = os.walk('./data')
# 第一次調(diào)用next():返回當(dāng)前目錄(data)的信息
print(next(gen))  
# 示例輸出:('./data', ['sub3', 'b3'], [])
# 第二次調(diào)用next():返回第一個子目錄(sub3)的信息
print(next(gen))  
# 示例輸出:('./data/sub3', [], [])
# 第三次調(diào)用next():返回第二個子目錄(b3)的信息
print(next(gen))  
# 示例輸出:('./data/b3', ['c5'], [])

實戰(zhàn):收集目錄下所有文件名稱

# 初始化文件列表
all_files = []
# 遍歷所有目錄,收集文件
for root, dirs, files in os.walk('./data'):
    all_files.extend(files)  # 將當(dāng)前目錄的文件添加到列表
print(all_files)  # 輸出所有文件名稱(如['111.py', '6.py'])

4. 目錄與文件刪除

(1)刪除文件:os.remove()

# 先判斷文件是否存在,避免報錯
if os.path.exists('data/b3/c5/111.py'):
    os.remove('data/b3/c5/111.py')  # 刪除指定文件

(2)刪除空目錄:os.rmdir()與os.removedirs()

  • os.rmdir():僅刪除空的葉子目錄(目錄內(nèi)無文件和子目錄)。
  • os.removedirs():遞歸刪除空目錄(從最深層開始,直到遇到非空目錄為止)。
# 刪除葉子目錄(必須為空)
if os.path.exists('data/sub3/cc'):
    os.rmdir('data/sub3/cc')
# 遞歸刪除空目錄(如刪除c5后,若b3為空則繼續(xù)刪除b3)
if os.path.exists('data/b3/c5'):
    os.removedirs('data/b3/c5')

注意:如果目錄非空(包含文件或子目錄),刪除會報錯。刪除非空目錄需使用shutil.rmtree()(需導(dǎo)入shutil模塊)。

三、os.path 模塊:路徑處理工具

os.path模塊提供了一系列路徑處理函數(shù),解決不同操作系統(tǒng)路徑格式差異的問題,確保路徑操作跨平臺兼容。

1. 判斷路徑類型

  • os.path.isdir(path):判斷是否為目錄。
  • os.path.isfile(path):判斷是否為文件。
import os.path
# 判斷是否為目錄
print(os.path.isdir('./data/sub3/test'))  # 輸出:False(假設(shè)test不存在)
# 判斷是否為文件
print(os.path.isfile('./data/sub3/6.py'))  # 輸出:True(假設(shè)文件存在)

2. 獲取文件大小

os.path.getsize(path)返回文件的大?。▎挝唬鹤止?jié))。

# 獲取文件大小
print(os.path.getsize('./data/sub3/6.py'))  # 示例輸出:1024(表示1024字節(jié))

3. 路徑分割與拼接

  • os.path.split(path):將路徑分割為(目錄部分, 文件名)
  • os.path.join(path1, path2, ...):拼接多個路徑片段,自動使用當(dāng)前系統(tǒng)的分隔符。
# 分割路徑
print(os.path.split('./data/sub3/6.py'))  
# 輸出:('./data/sub3', '6.py')
# 拼接路徑
print(os.path.join(r'.\data\sub3', '6.py'))  
# 輸出:.\data\sub3\6.py(Windows系統(tǒng))
# 或 ./data/sub3/6.py(Linux/macOS系統(tǒng))

優(yōu)勢os.path.join()會自動適配系統(tǒng)分隔符,避免手動寫死/\導(dǎo)致的跨平臺問題。

四、實戰(zhàn)場景與最佳實踐

  • 常見應(yīng)用場景
    • 日志文件管理:創(chuàng)建按日期分類的日志目錄(如./logs/2025-07)。
    • 數(shù)據(jù)備份:遍歷指定目錄,復(fù)制或壓縮所有文件。
    • 程序初始化:啟動時創(chuàng)建必要的配置目錄(如./config./cache)。
  • 最佳實踐
    • 路徑操作優(yōu)先使用os.path模塊,避免硬編碼分隔符(如/\)。
    • 刪除文件 / 目錄前務(wù)必檢查是否存在(用os.path.exists()),避免報錯。
    • 遞歸遍歷目錄時,使用os.walk()的生成器特性,減少內(nèi)存占用。
    • 處理大型目錄時,結(jié)合try-except捕獲權(quán)限不足等異常:
try:
    os.makedirs('./data/sub3')
except PermissionError:
    print("無權(quán)限創(chuàng)建目錄")

五、總結(jié)

osos.path模塊是 Python 文件系統(tǒng)操作的核心工具,通過本文的學(xué)習(xí),你已掌握:

  • 目錄的創(chuàng)建、查看、刪除(os.makedirs()、os.walk()、os.remove()等)。
  • 路徑的判斷、分割、拼接(os.path.isdir()、os.path.join()等)。
  • 跨平臺路徑處理的最佳實踐。

到此這篇關(guān)于Python os 模塊與路徑從基礎(chǔ)到實戰(zhàn)應(yīng)用的文章就介紹到這了,更多相關(guān)python os模塊路徑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python爬取你好李煥英豆瓣短評生成詞云的示例代碼

    Python爬取你好李煥英豆瓣短評生成詞云的示例代碼

    這篇文章主要介紹了Python爬取你好李煥英豆瓣短評生成詞云,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • python3?字符串str和bytes相互轉(zhuǎn)換

    python3?字符串str和bytes相互轉(zhuǎn)換

    這篇文章主要介紹了python3?字符串str和bytes相互轉(zhuǎn)換,在文件傳輸過程中,通常使用bytes格式的數(shù)據(jù)流,而代碼中通常用str類型,因此str和bytes的相互轉(zhuǎn)換就尤為重要,下文詳細(xì)介紹需要的小伙伴可以參考一下
    2022-03-03
  • python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個數(shù)實例

    python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個數(shù)實例

    今天小編就為大家分享一篇python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python序列操作之進(jìn)階篇

    Python序列操作之進(jìn)階篇

    序列sequence是python中最基本的數(shù)據(jù)結(jié)構(gòu),本文是Python序列操作的進(jìn)階篇,本文先對序列做一個簡單的概括,之后將詳細(xì)講解下關(guān)于序列的操作方法。文中通過示例代碼介紹的很詳細(xì),有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • Python實現(xiàn)的桶排序算法示例

    Python實現(xiàn)的桶排序算法示例

    這篇文章主要介紹了Python實現(xiàn)的桶排序算法,簡單說明了桶排序的概念、原理及優(yōu)缺點(diǎn),并結(jié)合實例形式演示了Python實現(xiàn)桶排序的方法,需要的朋友可以參考下
    2017-11-11
  • Python?Pexpect庫自動化交互式進(jìn)程控制的expect_list方法解析

    Python?Pexpect庫自動化交互式進(jìn)程控制的expect_list方法解析

    Pexpect是一個Python庫,為自動化和交互式進(jìn)程控制提供了豐富的功能,而expect_list方法是其功能強(qiáng)大且靈活的一部分,將詳細(xì)探討如何使用這一方法,并提供多個示例來說明其應(yīng)用場景和功能
    2024-01-01
  • python中常見的幾種音頻數(shù)據(jù)讀取、保存方式總結(jié)

    python中常見的幾種音頻數(shù)據(jù)讀取、保存方式總結(jié)

    Python是一種非常適合進(jìn)行音頻處理和音頻分析的語言,因為它有許多強(qiáng)大的庫可以使用,下面這篇文章主要給大家介紹了關(guān)于python中常見的幾種音頻數(shù)據(jù)讀取、保存方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • Python實現(xiàn)批量下載文件的示例代碼

    Python實現(xiàn)批量下載文件的示例代碼

    下載文件是我們在日常工作中常常要做的一件事情,當(dāng)我們需要從互聯(lián)網(wǎng)上批量下載大量文件時,手動一個一個去下載顯然不夠高效,所以本文為大家介紹一下如何利用python批量下載文件吧
    2023-11-11
  • python實現(xiàn)換位加密算法的示例

    python實現(xiàn)換位加密算法的示例

    今天小編就為大家分享一篇python實現(xiàn)換位加密算法的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python的裝飾器用法學(xué)習(xí)筆記

    Python的裝飾器用法學(xué)習(xí)筆記

    這篇文章主要介紹了Python的裝飾器用法學(xué)習(xí)筆記,裝飾器的使用是Python編程中的高級技巧,需要的朋友可以參考下
    2016-06-06

最新評論