Python人员使用哪个路径模块或类而不是os.path?

Ben*_*oyt 7 python path

只是想知道有多少人在Python中使用路径模块,比如Jason Orendorff的那个,而不是os.path用于加入和分割路径?你用过:

我知道Jason的路径模块被制作成PEP 355并被BDFL拒绝.这似乎主要是因为它试图在一个班级中做所有事情.

我们的用例主要是简化路径组件的连接和拆分,所以如果这样的路径类只实现了拆分/连接类型的操作,我们会很高兴.谁不想这样做:

path(build_dir, path(source_file).name)
Run Code Online (Sandbox Code Playgroud)

或这个:

build_dir / path(source_file).name
Run Code Online (Sandbox Code Playgroud)

而不是这个:

os.path.join(build_dir, os.path.basename(source_file))
Run Code Online (Sandbox Code Playgroud)

Mat*_*lin 11

我可以毫不犹豫地选择一个Python程序并解释当前的标准方法 - 它是明确的并且没有歧义:

os.path.join(build_dir, os.path.basename(source_file))
Run Code Online (Sandbox Code Playgroud)

Python的动态类型使得第一种方法在阅读时很难理解:

build_dir / path(source_file).name
Run Code Online (Sandbox Code Playgroud)

另外,划分字符串并不常见,这会带来更多混乱.我怎么知道那两个不是整数?还是漂浮?如果两者都以非字符串类型结尾,则不会在运行时获得TypeError.

最后,

path(build_dir, path(source_file).name)
Run Code Online (Sandbox Code Playgroud)

那怎么比os.path方法更好?

虽然他们可以"简化"编码(即,使编写更容易),但如果不熟悉替代模块的其他人需要维护代码,那么您将遇到冲突.

所以我想我的答案是:我没有使用替代路径模块.os.path已经拥有了我需要的一切,它的界面也不错.

  • 听到了!标准的os.path模块没有什么可怕的错误,可以保证为项目添加更多的依赖项.如果你有一个特别毛茸茸的路径构造问题,比如构建一个从对象层次结构中的路径,那么为什么不将它包装在一个函数中呢?下一个程序员会感谢你封装它,并且不让他学习和调试整个其他模块. (2认同)