2016-11-05 152 views
0

我想在我的Python代码中使用其他文件夹的数据。文件结构是这样的:如何获取py文件的路径?

-- Data 
    -- data.txt 
-- Src 
    -- app.py 

所以我写的代码为打击:

fileName = os.path.abspath('../Data/data.txt') 

的代码是正确的,只有在src文件夹中运行。但是,当我运行py代码,在我的家庭文件夹或其他文件夹。那是错的。我知道为什么,因为这是路径问题。所以,这是我的问题,如何使它正确?有人能帮助我吗?

+0

如果你不能告诉该文件是有关你的,是有可能,你问的是如何搜索Python中的文件? – bluesummers

回答

1

你需要指定路径的数据文件,你可以硬编码或者把它作为一个默认值ARG(更好的解决方案)

import sys 

if __name__ == '__main__': 
    fileName = sys.argv[1] if len(sys.argv==2) else '/the/default/path' 

''' your code'''' 

传递参数传递给一个Python脚本第一时arg是脚本本身

同样的名字,如果你需要你的脚本中获取当前目录路径:

import os 
current_path = os.getcwd() 
3

我猜有一个更好的办法,但这是非常直截了当

import os 

# get the directory of the executed python file 
src_path = os.path.dirname(os.path.abspath(__file__)) 

# get the directory of data relative to the src_path 
data_path = os.path.join(src_path, "../data/data.txt") 

# profit ? 
print open(data_path).read() 

例子

/tmp/src > python app.py 
Hello World! 

/tmp > python src/app.py 
Hello World! 
+0

谢谢,它的工作原理。 – Andy