在Python 2中,我可以在更改目录后获取文件对象的真实路径吗?


Python 2中,是否可以在os.chdir()之后获取文件对象的真实路径?考虑:

$python
>>> f = file('abc', 'w')
>>> f.name
'abc'
>>> from os import path
>>> path.realpath(f.name)
'/home/username/src/python/abc'
>>> os.chdir('..')
>>> path.realpath(f.name)
'/home/username/src/abc'

对realpath的第一次调用返回磁盘上文件的路径,但第二次没有.有没有办法在chdir之后获取磁盘文件的路径?理想情况下,我想要一个通用的答案,即使我自己没有创建文件对象也能正常工作.

我没有任何实际用例,我只是好奇.

最佳答案 当然

f=file(os.path.join(os.getcwd(),"fname"),"w")

print f.name

只要在初始化时使用绝对路径

正如Martijn Pieters指出的那样,你也可以做到

f=file(os.path.abspath('fname'),"w")  #or os.path.realpath , etc

print f.name
点赞