【发布时间】:2022-09-28 17:06:15
【问题描述】:
我想读取 xls 文件中的单元格 V31 但失败了 如何在完整路径中打开具有函数的文件?
-
“它失败了”到底是什么意思?
标签: python
我想读取 xls 文件中的单元格 V31 但失败了 如何在完整路径中打开具有函数的文件?
标签: python
你的问题是你是逃跑执行此操作时,带有反斜杠 \ 的右引号:
r"C:\User\"
这意味着字符串继续,最后一个 " 只是成为字符串的一部分。这意味着所有这些都变成了一个字符串:
r"C:\User\" + time + "
此外,如果您想要返回值您的 time 函数要包含在路径中,您实际上需要称呼它,意味着你需要做time(),而不仅仅是time。后者只是对可调用/函数的引用,而前者实际调用它并返回一个值。
为了避免大多数路径问题,我建议尽可能使用pathlib。 Path 类负责正确连接文件路径的各个部分,自动考虑您的操作系统,并且还允许您使用路径做一大堆其他有用的事情。
在您的示例中,我将这样做:
...
path = Path("C:/User", time(), "SRMR_207228_1200326491_Portfolio_Margin_286165_1.xls")
xls = pd.ExcelFile(path)
...
PS:
由于对原始字符串文字在 Python 中的工作方式似乎存在一些误解,here 是文档中的相关部分。这是相关部分:
反斜杠 (
\) 字符 [...] 也可用于转义具有特殊含义的字符,例如换行符、反斜杠本身或引号字符. [...] 即使在一个原始文字, 引号可以用反斜杠转义。(由我缩写和突出显示。)
【讨论】: