操作文件和目錄

Python內(nèi)置的os模塊也可以直接調(diào)用操作系統(tǒng)提供的接口函數(shù)趟济。

>>> import os
>>> os.name # 操作系統(tǒng)類型
'posix'

如果是posix,說明系統(tǒng)是Linux送爸、Unix或Mac OS X铛嘱,如果是nt暖释,就是Windows系統(tǒng)。

要獲取詳細(xì)的系統(tǒng)信息墨吓,可以調(diào)用uname()函數(shù):

>>> os.uname()
posix.uname_result(sysname='Darwin', nodename='MichaelMacPro.local', release='14.3.0', version='Darwin Kernel Version 14.3.0: Mon Mar 23 11:59:05 PDT 2015; root:xnu-2782.20.48~5/RELEASE_X86_64', machine='x86_64')

環(huán)境變量

>>> os.environ
environ({'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', ...})

要獲取某個環(huán)境變量的值饭入,可以調(diào)用os.environ.get('key'):

>>> os.environ.get('PATH')
'/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/mysql/bin'
>>> os.environ.get('x', 'default')
'default'

操作文件和目錄

操作文件和目錄的函數(shù)一部分放在os模塊中,一部分放在os.path模塊中肛真,

查看谐丢、創(chuàng)建和刪除目錄可以這么調(diào)用:
>>> os.path.abspath('.')
'/Users/michael'
# 在某個目錄下創(chuàng)建一個新目錄,首先把新目錄的完整路徑表示出來:
>>> os.path.join('/Users/michael', 'testdir')
'/Users/michael/testdir'
# 然后創(chuàng)建一個目錄:
>>> os.mkdir('/Users/michael/testdir')
# 刪掉一個目錄:
>>> os.rmdir('/Users/michael/testdir')

>>> os.path.split('/Users/michael/testdir/file.txt')
('/Users/michael/testdir', 'file.txt')

os.path.splitext()可以直接讓你得到文件擴展名蚓让,很多時候非常方便:
>>> os.path.splitext('/path/to/file.txt')
('/path/to/file', '.txt')
這些合并乾忱、拆分路徑的函數(shù)并不要求目錄和文件要真實存在,它們只對字符串進(jìn)行操作历极。

文件操作使用下面的函數(shù)窄瘟。假定當(dāng)前目錄下有一個test.txt文件:

# 對文件重命名:
>>> os.rename('test.txt', 'test.py')
# 刪掉文件:
>>> os.remove('test.py')

幸運的是shutil模塊提供了copyfile()的函數(shù),你還可以在shutil模塊中找到很多實用函數(shù)趟卸,它們可以看做是os模塊的補充蹄葱。

最后看看如何利用Python的特性來過濾文件。比如我們要列出當(dāng)前目錄下的所有目錄锄列,只需要一行代碼:

>>> [x for x in os.listdir('.') if os.path.isdir(x)]
['.lein', '.local', '.m2', '.npm', '.ssh', '.Trash', '.vim', 'Applications', 'Desktop', ...]

要列出所有的.py文件图云,也只需一行代碼:

>>> [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']
['apis.py', 'config.py', 'models.py', 'pymonitor.py', 'test_db.py', 'urls.py', 'wsgiapp.py']
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市邻邮,隨后出現(xiàn)的幾起案子竣况,更是在濱河造成了極大的恐慌,老刑警劉巖筒严,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丹泉,死亡現(xiàn)場離奇詭異,居然都是意外死亡鸭蛙,警方通過查閱死者的電腦和手機摹恨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來娶视,“玉大人晒哄,你說我怎么就攤上這事⌒颍” “怎么了揩晴?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贪磺。 經(jīng)常有香客問我硫兰,道長,這世上最難降的妖魔是什么寒锚? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任劫映,我火速辦了婚禮违孝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘泳赋。我一直安慰自己雌桑,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布祖今。 她就那樣靜靜地躺著校坑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪千诬。 梳的紋絲不亂的頭發(fā)上耍目,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音徐绑,去河邊找鬼邪驮。 笑死,一個胖子當(dāng)著我的面吹牛傲茄,可吹牛的內(nèi)容都是我干的毅访。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼盘榨,長吁一口氣:“原來是場噩夢啊……” “哼喻粹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起较曼,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤磷斧,失蹤者是張志新(化名)和其女友劉穎振愿,沒想到半個月后捷犹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡冕末,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年萍歉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片档桃。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡枪孩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出藻肄,到底是詐尸還是另有隱情蔑舞,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布嘹屯,位于F島的核電站攻询,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏州弟。R本人自食惡果不足惜钧栖,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一低零、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拯杠,春花似錦掏婶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至依溯,卻和暖如春茎芭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背誓沸。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工梅桩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拜隧。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓宿百,卻偏偏與公主長得像,于是被迫代替她去往敵國和親洪添。 傳聞我的和親對象是個殘疾皇子垦页,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容