2016-11-28 63 views
0

最近我一直在學習Python的路徑名操作,其模塊的基本理解下面的語句搞糊塗了蟒子模塊和路徑名操作

osos.path都是模塊:(這怎麼可能

然後我看着os.py源代碼,發現下面的代碼啓發線

57. import posixpath as path 

我的問題是

我爲什麼要使用os.path.join('bin','utils')代替posixpath.join('bin','utils')

什麼是簡單的可能方式exlain xx.y作爲模塊和什麼時候應該我應用這種技術?

+2

相關:http://stackoverflow.com/questions/2724348/should-i-use-import-os-path-or-import-os-「os.path'名稱是這個 模塊的別名在POSIX系統;在其他系統(如在Mac,Windows), 'os.path'提供了特定於平臺 的方式相同的操作,並且是一個別名到另一個模塊(例如macpath,ntpath)」 –

+1

如果看看那個'import posixpath as path'的上下文,你會發現它只發生在腳本運行在Posix系統上。 'posixpath'不打算由普通用戶代碼直接使用,你應該讓'os'爲你處理這些細節。否則,您的腳本將無法在非Posix系統上工作。 –

+0

我發佈了答案,感謝@Chris_Rands和@PM 2Ring指出了這一點。雖然有人仍然可以使用'posixpath',如果確切知道他/她在做什麼,'os.path'是最好的選擇 –

回答

0

使用os.path.join('bin','utils')而不是posixpath.join('bin','utils')

我發現,使用os.path直接使用posixpath更強勁。

os.path報價與不同操作系統的兼容性。簡化代碼os.py

if 'posix' == os.name : 
    from posix import * 
    import posixpath as path 
elif 'nt' == os.name : 
    from nt import * 
    import ntpath as path 
.... 

正如你可以看到使用os.path將確保您的當前操作系統的細節操作路徑。