在python中访问本地文件

时间:2018-02-03 03:41:40

标签: python

我正在使用python 3.6。我想访问文件E:\all_study\python\Bearing_fault.mat。这不在主目录中。我已经尝试过open("\E:\all_study\python\Bearing_fault.mat","r")命令,但它无效!

3 个答案:

答案 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