jve*_*dge 9 python path os.path
我有一个目录bar的目录里面foo,使用文件foo_file.txt目录foo和文件bar_file.txt目录bar; 即
computer$ ls
foo/
computer$ ls foo/
bar/ foo_file.txt
computer$ ls foo/bar/
bar_file.txt
Run Code Online (Sandbox Code Playgroud)
使用python os.path.relpath函数,我期望:
os.path.relpath('foo/bar/bar_file.txt', 'foo/foo_file.txt')
Run Code Online (Sandbox Code Playgroud)
给我:
'bar/bar_file.txt'
Run Code Online (Sandbox Code Playgroud)
但是,它实际上给了我:
'../bar/bar_file.txt'
Run Code Online (Sandbox Code Playgroud)
为什么是这样?有没有一种简单的方法来获得我想要的行为?
编辑:这是在Linux上使用Python 2.7.3
小智 9
os.path.relpath(arg1, arg2)
Run Code Online (Sandbox Code Playgroud)
将给出arg1目录中arg2的相对路径。为了从arg2到arg1,您需要先建立一个目录(..),进入bar目录(bar),然后进入bar_file.txt。因此,相对路径为
../bar/bar_file.txt
Run Code Online (Sandbox Code Playgroud)
os.path.relpath() 假设它的参数是目录.
>>> os.path.join(os.path.relpath(os.path.dirname('foo/bar/bar_file.txt'),
os.path.dirname('foo/foo_file.txt')),
os.path.basename('foo/bar/bar_file.txt'))
'bar/bar_file.txt'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19382 次 |
| 最近记录: |