我正在使用python 3.6。我想访问文件E:\all_study\python\Bearing_fault.mat
。这不在主目录中。我已经尝试过open("\E:\all_study\python\Bearing_fault.mat","r")
命令,但它无效!
答案 0 :(得分:0)
逃避反斜杠,因为它是一个特殊的角色。并在E
之前删除反斜杠open("E:\\all_study\\python\\Bearing_fault.mat","r")
答案 1 :(得分:0)
尝试使用pathlib,它有助于解决问题。请注意此示例中的正斜杠。这也适用于open()。
from pathlib import Path
p = Path('E:/all_study/python/Bearing_fault.mat')
print(p.exists())
print(p.is_file())
print(p.read_text())
with p.open() as f:
f.read_line()
或者,在字符串前面添加r会禁用转义,允许直接粘贴路径。
p = Path(r'E:\all_study\python\Bearing_fault.mat')
但这是pathlib的主要原因。如果文件与脚本位于同一目录中,请利用它来提高可移植性和可靠性。 (可以很容易地适应支持文件与python脚本位于不同目录的场景)
p = Path(__file__).with_name('Bearing_fault.mat')
答案 2 :(得分:0)
>>> print("\E:\all_study\python\Bearing_fault.mat")
\E:ll_study\python\Bearing_fault.mat
路径不存在就不足为奇了!正在为转义序列解析string literal中的每个反斜杠,例如\a
用于生成bell character的警报。此外,您不要在驱动器号前面放置反斜杠。您可以使用原始字符串:
>>> print(r"E:\all_study\python\Bearing_fault.mat")
E:\all_study\python\Bearing_fault.mat