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
只是一个猜测但尝试
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)