我有一些代碼可以使用熊貓來恢復python中的一些小型excel文件,並對它們執行一些數據分析。我正在嘗試設置我的代碼的測試,但是我遇到了一些麻煩,並且在四處搜索時找不到合適的答案。如何在python中指定根模塊目錄?
這裏是我的代碼的目錄結構:
my_project/
__init__.py
code/
__init__.py
analysiscode.py
tests/
__init__.py
testcode.py
data/
datafile.xlsx
我最初是從code
目錄中運行analysiscode.py
,所以我被指定,像這樣的路徑恢復數據文件:
import pandas as pd
df = pd.read_excel('../data/datafile.xlsx')
但是,現在,當我嘗試在模塊根目錄(即my_project
)的代碼上運行測試時,在查看數據目錄之前指定的上一個目錄的路徑不再有效。
以下是錯誤消息的示例:
my_project$ nosetests
IOError: [Errno 2] No such file or directory: '../data/datafile.xlsx'
對於這種特殊情況下,我總是可以指定完整的路徑,但我正在尋找一個更通用的解決方案,使別人可以下載這個代碼,並仍然有效。
有沒有在python中指定my_project
目錄的方法?換句話說,有沒有說沿着
mydatadir = my_project/data
df = pd.read_excel(mydatadir+'datafile.xlsx')
這樣我可以運行分析代碼的東西線的方式無論是從my_project/code
目錄或my_project
目錄,而不需要知道的完整路徑my_project
?
嘗試導入os模塊,然後使用'os.chdir(「..」)'切換到最後一個目錄,然後運行命令爲'df = pd.read_excel('data/datafile.xlsx')' – 2015-03-19 03:13:37
謝謝對於這個建議。不幸的是,用'os.chdir(「..」my_project'目錄運行代碼。「)',並且在調用'read_excel'時從文件名中刪除的點搜索'my_project /../data/datafile.xlsx',也就是說,它搜索一個從'my_project'上一級的數據目錄, – mgig 2015-03-19 03:38:52
您使用的是什麼操作系統? – 2015-03-19 03:41:51