如何通过路径访问而不仅仅是在当前目录中?
我写了一个函数,可以读取一个Excel文件并对它进行处理。显然,这个.py文件必须和Excel文件放在同一个文件夹里。有没有办法输入文件的路径,这样我就可以把脚本放在其他地方?
2 个回答
4
import os
os.chdir('/my/new/path')
你可以通过使用 os.chdir
来改变当前的工作目录。
另一种方法是通过绝对路径来引用 Excel 文件(无论你是怎么打开它的)。
2
显然,.py 文件必须和 Excel 文件放在同一个文件夹里。
我不太明白“显然”是什么意思。
有没有办法输入文件的路径,这样我就可以把脚本放在其他地方?
可以的,只需要输入路径就行。
来自 xlrd 文档:
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 等等。
另外,这个建议和你用什么软件来输入文件名或文件路径是没有关系的。
关于在 Windows 上的 Python 脚本中写死文件路径:
按照推荐程度从低到高排列:
使用反斜杠:
"c:\testdata\new.xls"
... 但是\t
会被当作制表符,\n
会被当作换行符。这样会出错。转义你的反斜杠:
"c:\\testdata\\new.xls"
... 听起来不太好。使用原始字符串:
r"c:\testdata\new.xls"
使用正斜杠:
"c:/testdata/new.xls"
... 是的,这样也可以在 open() 中使用。最好不要这样做 ... 参考上面的脚本示例。