2011-02-11 96 views
0

我已經寫了一個讀取excel文件並對其進行處理的函數。很顯然,.py文件必須與excel文件位於同一目錄中。有沒有辦法輸入文件的路徑,所以我可以將腳本放在同一個地方?如何通過路徑訪問而不是僅在當前目錄中訪問?

+0

的。py文件可以在與excel文件不同的目錄中 - 您用來打開文件的代碼是什麼? – Mark 2011-02-11 19:35:48

+0

我正在使用xlrd。所以xlrd.open_workbook('文件名') – Kosig 2011-02-11 19:40:35

+3

只需將'filename'替換爲'/ path/to/filename'即可。或者在Windows上'C:\\ Path \\ to \\ filename'。如果需要跨平臺,可以使用os.join選擇正確的分隔符。 – 2011-02-11 19:43:23

回答

2

顯然,.py文件必須在 與excel文件相同的目錄下。

我不明白,「明明」

有沒有辦法進入的 文件的路徑,所以我可以離開腳本 同一個地方?

是的,只要鍵入它

xlrd documentation

open_workbook(filename=None, etc etc etc) 

    Open a spreadsheet file for data extraction. 

    filename 
     The path to the spreadsheet file to be opened. 

腳本的片段(假定你是不是硬編碼在腳本路徑):

import sys 
import xlrd 
book = xlrd.open_workbook(sys.argv[1]) 

在Windows「命令提示符」窗口中運行此操作:

python c:\myscripts\demo_script.py d:\datafiles\foo.xls 

原則同樣適用於Linux和OS X等

而且,這個建議是很獨立的什麼軟件你是餵養的文件名或文件路徑的。

關於在Python腳本中的硬編碼文件路徑在Windows上:

在優選性遞增的順序:

  • 使用反斜槓:"c:\testdata\new.xls" ...的\t將被解釋爲一個TAB字符。 \n將被解釋爲換行符。失敗。

  • 逃避你的反斜槓:"c:\\testdata\\new.xls" ...喲。

  • 使用原始字符串:r"c:\testdata\new.xls"

  • 使用正斜槓:"c:/testdata/new.xls" ...是的,它的工作原理,輸送到開時()。

  • 不要這麼做...請參閱上面的腳本示例。

4
import os 
os.chdir('/my/new/path') 

您可以使用os.chdir更改當前工作目錄。

另一種方法是通過絕對路徑引用excel文件(但是您打開它)。