Python,引用与运行文件在同一目录中的文件

tsc*_*zle 0 python reference file sys

如果我有一个名为example.py的Python文件,with open('%s/data.csv' % sys.path[0]) as var_name:并且data.csv与example.py位于同一目录中,那么如果我从终端运行example.py它会正常工作,但是当使用unittest时它不起作用.我的理解是,当从终端运行它时,sys.path [0]为我提供了正在运行的文件的路径(example.py),因此如果data.csv和example.py在同一目录中,那么sys. path [0] /data.csv将正确找到data.csv.但是当unittest运行时,无论什么幕后原因,sys.path [0]都是空的,并且正确找不到/data.csv.

所以我想知道什么是一个好的策略(也许是一些显式的代码:))是为了使这个引用总是工作无论如何(我猜没有sys.path [0]但是如果有一些东西可以使用我将会接受).

我还应该提到我在OS X 10.9.3上使用python 2.7

Jor*_*ley 8

只是一个猜测但尝试

with open('%s/data.csv' % os.path.dirname(__file__)) as ...
Run Code Online (Sandbox Code Playgroud)

或者甚至可能更喜欢

 file_path = os.path.join(os.path.dirname(__file__),"data.csv")
Run Code Online (Sandbox Code Playgroud)