2016-11-28 75 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将确保您的当前操作系统的细节操作路径。