Python:如何获取兄弟目录中文件的路径?
我有这样的文件结构:
data
mydata.xls
scripts
myscript.py
在我的脚本myscript.py里面,我怎么才能获取到mydata.xls的文件路径呢?
我需要把这个路径传给xlrd:
book = xlrd.open_workbook(filename)
但是像'../data/mydata.xls'这样的相对路径好像不太管用。
4 个回答
4
import os
directory = os.path.dirname(os.getcwd())
final = os.path.join(directory, 'data', 'mydata.xls')
os.path.abspath('../data/mydata.xls')
或者简单来说
12
如果你想让它不依赖于你当前的目录,可以试试下面的代码:
os.path.join(os.path.dirname(__file__), '../data/mydata.xls')
这里有个特别的变量叫做 __file__
,它包含了当前脚本的相对路径。需要注意的是,当你在REPL解释器中使用时,__file__
是没有定义的。
11
你可以使用 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