Python那點(diǎn)事兒 - OS模塊

OS 模塊

OS模塊是Python內(nèi)置的模塊,通過(guò)使用import語(yǔ)句可以直接調(diào)用。

import os
  • os.getcwd()
    顯示當(dāng)前工作目錄。
In [57]: os.getcwd()
Out[57]: '/Users/lupin/Downloads/test'
  • os.makedirs()
    新建文件夾,同時(shí)也將創(chuàng)建所有必要的中間文件夾。
In [58]: os.makedirs('d/e/f')

In [59]: ls
a   a1  b   c   d/

In [60]: ls d
e/

In [62]: ls d/e
f/

In [63]: ls d/e/f
  • os.listdir(path)
    返回文件名字符串的列表
In [99]: os.listdir('.')
Out[99]: ['a', 'a1', 'c', 'd', 'b']

os.path 模塊

包含了許多與文件名和文件路徑相關(guān)的有用函數(shù)。

  • os.path.join()
    解決Windows上的倒斜杠以及OS X和Linux上的正斜杠問(wèn)題。
In [56]: os.path.join('usr', 'bin', 'spam')
Out[56]: 'usr/bin/spam'
  • os.path.abspath(path)
    返回參數(shù)的絕對(duì)路徑的字符串,將相對(duì)路徑轉(zhuǎn)換為絕對(duì)路徑。
In [64]: os.path.abspath('.')
Out[64]: '/Users/lupin/Downloads/test'

In [68]: os.path.abspath('a')
Out[68]: '/Users/lupin/Downloads/test/a' 
  • os.path.isabs(path)
    如果是絕對(duì)路徑,就返回True,否則返回False。
In [69]: os.path.isabs('.')
Out[69]: False

In [71]: os.path.isabs('/Users')
Out[71]: True

In [76]: os.path.isabs(os.path.abspath('.'))
Out[76]: True
  • os.path.relpath(path,start)
    將返回從start路徑到path的相對(duì)路徑字符串。如果沒(méi)有提供start,就使用當(dāng)前工作目錄作為開(kāi)始路徑。
In [85]: os.path.relpath('/bin','/')
Out[85]: 'bin'

In [86]: os.path.relpath('/bin')
Out[86]: '../../../../bin'

In [87]: os.getcwd()
Out[87]: '/Users/lupin/Downloads/test'
  • os.path.dirname(path)
    返回字符串,它包含path參數(shù)中最后一個(gè)斜杠之前的所有內(nèi)容。
    目錄名稱(chēng):最后一個(gè)斜杠之前的所有內(nèi)容
    基本名稱(chēng):路徑中最后一個(gè)斜杠后,與文件名相同
In [88]: path = '/a/b/c'

In [90]: os.path.dirname(path)
Out[90]: '/a/b'
  • os.path.basename(path)
    返回字符串,包含path參數(shù)中最后一個(gè)斜杠之前所有內(nèi)容。
In [89]: os.path.basename(path)
Out[89]: 'c'
  • os.path.split(path)
    返回元組,包含目錄名稱(chēng),基本名稱(chēng)。
In [91]: os.path.split(path)
Out[91]: ('/a/b', 'c')
  • op.path.sep
    返回正確的文件夾分割斜杠。
In [93]: os.path.sep
Out[93]: '/'

In [94]: path.split(os.path.sep)
Out[94]: ['', 'a', 'b', 'c']
  • os.path.getsize(path)
    返回path參數(shù)中文件的字節(jié)數(shù)。
In [97]: os.path.getsize('b')
Out[97]: 13
  • os.path.exists(path)
    如果path所指定的文件或文件夾存在,返回True,否則返回False。
In [104]: ls -al
total 24
drwxr-xr-x   7 lupin  staff  224 Aug 26 10:18 ./
drwxr-xr-x+ 10 lupin  staff  320 Aug 26 07:44 ../
-rw-r--r--   1 lupin  staff    8 Aug 25 20:27 a
-rw-r--r--   1 lupin  staff    8 Aug 25 20:43 a1
-rw-r--r--   1 lupin  staff   13 Aug 25 20:35 b
-rw-r--r--   1 lupin  staff    0 Aug 25 20:26 c
drwxr-xr-x   3 lupin  staff   96 Aug 26 10:18 d/

In [105]: os.path.exists('a')
Out[105]: True
  • os.path.isfile(path)
    如果path參數(shù)存在,并且是一個(gè)文件,則返回True,否則返回False。
In [106]: os.path.isfile('a')
Out[106]: True
  • os.path.isdir(path)
    如果path參數(shù)存在,并且是一個(gè)文件夾,則返回True,否則返回False。
In [107]: os.path.isdir('a')
Out[107]: False

示例

  • 當(dāng)前文件夾所有文件的總字節(jié)數(shù)
In [100]: totalsize = 0

In [101]: for filename in os.listdir('.'):
     ...:     totalsize += os.path.getsize(filename)
     ...:

In [102]: totalsize
Out[102]: 125
  • 判斷DVD或閃存盤(pán)是否連在計(jì)算機(jī)上
os.path.exists('d:\\')
最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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