Python os 模塊使用筆記

Python內(nèi)置的os模塊可以調(diào)用操作系統(tǒng)提供的接口函數(shù),對(duì)文件或目錄進(jìn)行操作(實(shí)際上操作系統(tǒng)是不允許應(yīng)用程序直接訪問(wèn)和操作文件和目錄的,讀寫文件就是請(qǐng)求操作系統(tǒng)打開一個(gè)文件對(duì)象,通常稱為文件描述符。然后,通過(guò)操作系統(tǒng)提供的接口從這個(gè)文件對(duì)象中讀取數(shù)據(jù),或者把數(shù)據(jù)寫入這個(gè)文件對(duì)象。)
os模塊一般有以下功能:

>>> import os
>>> os.name # 操作系統(tǒng)名字
'posix'
>>> os.uname()  #獲取詳細(xì)的操作系統(tǒng)信息,windows不支持。
('Darwin', 'iMac.local', '13.3.0', 'Darwin Kernel Version 13.3.0: Tue Jun  3 21:27:35 PDT 2014; root:xnu-2422.110.17~1/RELEASE_X86_64', 'x86_64')

注:如果是posix,操作系統(tǒng)是linux,Unix,Mac OS X.如果是nt,操作系統(tǒng)則是windows。

>>> os.environ   #在操作系統(tǒng)中定義的環(huán)境變量,全部保存在os.environ這個(gè)dict中,可以直接查看
{'VERSIONER_PYTHON_PREFER_32_BIT': 'no', 'TERM_PROGRAM_VERSION': '326', 'LOGNAME': 'michael', 'USER': 'michael', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/mysql/bin', ...}
>>> os.getenv('PATH')   #要獲取某個(gè)環(huán)境變量的值,可以調(diào)用os.getenv()函數(shù)
'/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/mysql/bin'
# 查看當(dāng)前目錄的絕對(duì)路徑:
>>> os.path.abspath('.')
'/Users/michael'
# 對(duì)路徑進(jìn)行連接組合,可以直接處理不同系統(tǒng)的路徑分隔符。
>>> os.path.join('/Users/michael', 'testdir')
'/Users/michael/testdir'
# 然后創(chuàng)建一個(gè)目錄:
>>> os.mkdir('/Users/michael/testdir')
# 刪掉一個(gè)目錄:
>>> os.rmdir('/Users/michael/testdir')
>>> os.path.split('/Users/michael/testdir/file.txt')   #對(duì)路徑進(jìn)行拆分,最后一部分總是最后級(jí)別的目錄或文件。
('/Users/michael/testdir', 'file.txt')
>>> os.path.splitext('/path/to/file.txt')   #可以讓你得到文件的后綴名
('/path/to/file', '.txt')
# 對(duì)文件重命名:將txt文件重命名為py文件
>>> os.rename('test.txt', 'test.py')
# 刪掉文件:
>>> os.remove('test.py')

復(fù)制文件的函數(shù)居然在os模塊中不存在!原因是復(fù)制文件并非由操作系統(tǒng)提供的系統(tǒng)調(diào)用。理論上講,我們通過(guò)上一節(jié)的讀寫文件可以完成文件復(fù)制,只不過(guò)要多寫很多代碼。幸運(yùn)的是shutil模塊提供了copyfile()的函數(shù),你還可以在shutil模塊中找到很多實(shí)用函數(shù),它們可以看做是os模塊的補(bǔ)充。關(guān)于shutil模塊可以參考月與燈依舊

>>> [x for x in os.listdir('.') if os.path.isdir(x)]  #只列出當(dāng)前目錄下的所有目錄,不輸出文件。
['.lein', '.local', '.m2', '.npm', '.ssh', '.Trash', '.vim', 'Adlm', 'Applications', 'Desktop', ...]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、溫故而知新 1. 內(nèi)存不夠怎么辦 內(nèi)存簡(jiǎn)單分配策略的問(wèn)題地址空間不隔離內(nèi)存使用效率低程序運(yùn)行的地址不確定 關(guān)于...
    SeanCST閱讀 8,107評(píng)論 0 27
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,574評(píng)論 30 472
  • pyton review 學(xué)習(xí)指南 https://www.zhihu.com/question/29138020...
    孫小二wuk閱讀 1,178評(píng)論 0 2
  • 最近很久沒(méi)在這更新了,但是其實(shí)平常有在畫啦,沒(méi)有堅(jiān)持更新。 今天連畫了兩幅,第一幅是自己想的,第二幅是臨摹的。
    風(fēng)吹海樹閱讀 770評(píng)論 2 7
  • 今天是2017年第一天,都說(shuō)這一天是勵(lì)志的一天??墒菫槭裁次覜](méi)有可勵(lì)志的事呢? 其實(shí),我的勵(lì)志已經(jīng)在2016年6月...
    藍(lán)華流云閱讀 252評(píng)論 0 0

友情鏈接更多精彩內(nèi)容