如何通过路径访问而不是仅在当前目录中访问?

问题描述:

我已经写了一个读取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

显然,.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" ...是的,它的工作原理,输送到开时()。

  • 不要这么做...请参阅上面的脚本示例。

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

您可以使用os.chdir更改当前工作目录。

另一种方法是通过绝对路径引用excel文件(但是您打开它)。