繁体   English   中英

Python:获取姐妹目录中的文件路径?

[英]Python: get path to file in sister directory?

我有这样的文件结构:

data
   mydata.xls
scripts
   myscript.py

从myscript.py中,如何获取mydata.xls的文件路径?

我需要将它传递给xlrd:

book = xlrd.open_workbook(filename)

和'../data/mydata.xls'之类的相对文件路径似乎不起作用。

您可以使用os.path.abspath(<relpath>)从相对路径获取绝对路径。

vinko@parrot:~/p/f$ more a.py
import os
print os.path.abspath('../g/a')

vinko@parrot:~/p/f$ python a.py
/home/vinko/p/g/a

目录结构:

vinko@parrot:~/p$ tree
.
|-- f
|   `-- a.py
`-- g
    `-- a

2 directories, 2 files

如果你想让它独立于你当前的目录试试

os.path.join(os.path.dirname(__file__), '../data/mydata.xls')

特殊变量__file__包含使用它的脚本的相对路径。 请记住,使用REPL解释器时__file__未定义。

import os
directory = os.path.dirname(os.getcwd())
final = os.path.join(directory, 'data', 'mydata.xls')

或者干脆

os.path.abspath('../data/mydata.xls')

从你的评论,似乎book = xlrd.open_workbook(filename)不喜欢相对路径。 您可以创建相对于当前文件__file__的路径,然后获取将删除相对部分的绝对路径( ..

import os

filename = os.path.join(os.path.dirname(__file__), '../data/mydata.xls')
book = xlrd.open_workbook(os.path.abspath(filename))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM