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

AP2*_*257 3 python

我有这样的文件结构:

data
   mydata.xls
scripts
   myscript.py
Run Code Online (Sandbox Code Playgroud)

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

我需要将它传递给xlrd:

book = xlrd.open_workbook(filename)
Run Code Online (Sandbox Code Playgroud)

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

Vin*_*vic 6

您可以使用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
Run Code Online (Sandbox Code Playgroud)

目录结构:

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

2 directories, 2 files
Run Code Online (Sandbox Code Playgroud)


Ada*_*tek 5

如果要使其独立于当前目录,请尝试

os.path.join(os.path.dirname(__file__), '../data/mydata.xls')
Run Code Online (Sandbox Code Playgroud)

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