ash*_*bar 6 doctest python-2.6
有没有一种方法可以将带有文件路径的doctest作为输出,而不管它运行在哪个操作系统上,该测试都会成功?
例如,在Windows上,它将起作用:
r"""
>>> import foo
>>> relative_path = foo.getRelativePath()
>>> print relative_path
'bar\\foobar'
"""
if __name__ == '__main__':
from doctest import testmod
print testmod()
Run Code Online (Sandbox Code Playgroud)
但是,当然会在Linux上失败并产生类似于以下内容的错误:
Failed example:
print relative_path
Expected:
'bar\\foobar'
Got:
'bar/foobar'
Run Code Online (Sandbox Code Playgroud)
如何在任何操作系统上执行以上操作?
编辑
我知道我可以做这样的事情:
>>> relative_path == os.path.join('bar', 'foobar')
True
Run Code Online (Sandbox Code Playgroud)
但是我想知道是否有其他更好的方法可以做到这一点。
Kim*_*ing -3
您可以通过调用获取依赖于操作系统的路径分隔符
sep = os.sep
Run Code Online (Sandbox Code Playgroud)
然后处理您正在使用的平台的相对路径。或者你可以使用
os.abspath()
Run Code Online (Sandbox Code Playgroud)
反而。有多种选项(请参阅http://pymotw.com/2/ospath/)。我选择了abspath变体。
-金
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |