5.11 文件路徑名的操作

2018-02-24 15:26 更新

問(wèn)題

你需要使用路徑名來(lái)獲取文件名,目錄名,絕對(duì)路徑等等。

解決方案

使用 os.path 模塊中的函數(shù)來(lái)操作路徑名。下面是一個(gè)交互式例子來(lái)演示一些關(guān)鍵的特性:

>>> import os
>>> path = '/Users/beazley/Data/data.csv'

>>> # Get the last component of the path
>>> os.path.basename(path)
'data.csv'

>>> # Get the directory name
>>> os.path.dirname(path)
'/Users/beazley/Data'

>>> # Join path components together
>>> os.path.join('tmp', 'data', os.path.basename(path))
'tmp/data/data.csv'

>>> # Expand the user's home directory
>>> path = '~/Data/data.csv'
>>> os.path.expanduser(path)
'/Users/beazley/Data/data.csv'

>>> # Split the file extension
>>> os.path.splitext(path)
('~/Data/data', '.csv')
>>>

討論

對(duì)于任何的文件名的操作,你都應(yīng)該使用 os.path 模塊,而不是使用標(biāo)準(zhǔn)字符串操作來(lái)構(gòu)造自己的代碼。特別是為了可移植性考慮的時(shí)候更應(yīng)如此,因?yàn)?os.path 模塊知道Unix和Windows系統(tǒng)之間的差異并且能夠可靠地處理類似 Data/data.csvData\data.csv 這樣的文件名。其次,你真的不應(yīng)該浪費(fèi)時(shí)間去重復(fù)造輪子。通常最好是直接使用已經(jīng)為你準(zhǔn)備好的功能。

要注意的是 os.path 還有更多的功能在這里并沒(méi)有列舉出來(lái)??梢圆殚喒俜轿臋n來(lái)獲取更多與文件測(cè)試,符號(hào)鏈接等相關(guān)的函數(shù)說(shuō)明。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)