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

0 投票
2 回答
1633 浏览
提问于 2025-04-16 11:39

我写了一个函数,可以读取一个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() 中使用。

  • 最好不要这样做 ... 参考上面的脚本示例。

撰写回答