2016-11-05 151 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