Python 的 os 模塊封裝了常見的文件和目錄操作,本文只列出部分常用的方法,更多的方法可以查看官方文檔。
下面是部分常見的用法:
方法 | 說明 |
---|---|
?os.mkdir | ?創(chuàng)建目錄 |
os.rmdir | ?刪除目錄 |
?os.rename | ?重命名 |
os.remove | 刪除文件 |
?os.getcwd | 獲取當前工作路徑 |
os.walk | 遍歷目錄 |
os.path.join | 連接目錄與文件名 |
os.path.split | 分割文件名與目錄 |
os.path.abspath | 獲取絕對路徑 |
os.path.dirname | 獲取路徑 |
os.path.basename | 獲取文件名或文件夾名 |
os.path.splitext | 分離文件名與擴展名 |
os.path.isfile | 判斷給出的路徑是否是一個文件 |
os.path.isdir | 判斷給出的路徑是否是一個目錄 |
后文的例子以下面的目錄結構為參考,工作目錄為 /Users/ethan/coding/python
。
Users/ethan
└── coding
└── python
├── hello.py - 文件
└── web - 目錄
看看例子:
$ pwd
/Users/ethan/coding/python
$ python
>>> import os # 記得導入 os 模塊
>>> os.path.abspath('hello.py')
'/Users/ethan/coding/python/hello.py'
>>> os.path.abspath('web')
'/Users/ethan/coding/python/web'
>>> os.path.abspath('.') # 當前目錄的絕對路徑
'/Users/ethan/coding/python'
>>> os.path.dirname('/Users/ethan/coding/python/hello.py')
'/Users/ethan/coding/python'
>>> os.path.dirname('/Users/ethan/coding/python/')
'/Users/ethan/coding/python'
>>> os.path.dirname('/Users/ethan/coding/python')
'/Users/ethan/coding'
>>> os.path.basename('/Users/ethan/coding/python/hello.py')
'hello.py'
>>> os.path.basename('/Users/ethan/coding/python/')
''
>>> os.path.basename('/Users/ethan/coding/python')
'python'
>>> os.path.splitext('/Users/ethan/coding/python/hello.py')
('/Users/ethan/coding/python/hello', '.py')
>>> os.path.splitext('/Users/ethan/coding/python')
('/Users/ethan/coding/python', '')
>>> os.path.splitext('/Users/ethan/coding/python/')
('/Users/ethan/coding/python/', '')
>>> os.path.split('/Users/ethan/coding/python/hello.py')
('/Users/ethan/coding/python', 'hello.py')
>>> os.path.split('/Users/ethan/coding/python/')
('/Users/ethan/coding/python', '')
>>> os.path.split('/Users/ethan/coding/python')
('/Users/ethan/coding', 'python')
>>> os.path.isfile('/Users/ethan/coding/python/hello.py')
True
>>> os.path.isdir('/Users/ethan/coding/python/')
True
>>> os.path.isdir('/Users/ethan/coding/python')
True
>>> os.path.isdir('/Users/ethan/coding/python/hello.py')
False
os.walk 是遍歷目錄常用的模塊,它返回一個包含 3 個元素的元祖:(dirpath, dirnames, filenames)。dirpath 是以 string 字符串形式返回該目錄下所有的絕對路徑;dirnames 是以列表 list 形式返回每一個絕對路徑下的文件夾名字;filesnames 是以列表 list 形式返回該路徑下所有文件名字。
>>> for root, dirs, files in os.walk('/Users/ethan/coding'):
... print root
... print dirs
... print files
...
/Users/ethan/coding
['python']
[]
/Users/ethan/coding/python
['web2']
['hello.py']
/Users/ethan/coding/python/web2
[]
[]