【发布时间】:2021-08-11 00:47:26
【问题描述】:
我在 Python 3.8 中打开一个简单的文本文件时遇到问题。我设置了一个简单的测试。
这是我的测试代码:
import os
file_path = "c:\Users\username\Documents\folder1\some_file.txt"
with open(file_path, 'r') as f:
for line in f:
print(line)
我收到以下错误:Unicode Error "unicodeescape" codec can't decode bytes in position 2-3.
我已经阅读了其他关于在文件路径前放置 'r' 的帖子,当我这样做时,我得到一个 "No such file or directory: 'c:\Users\username\Documents\ folder1\some_file.txt'
import os
file_path = r"c:\Users\username\Documents\folder1\some_file.txt"
with open(file_path, 'r') as f:
for line in f:
print(line)
我也尝试在路径 c:\\Users\\username\\Documents\\folder1\\some_file.txt 中使用双反斜杠,但也没有用。
我已尝试使用 pathlib 进行测试,但仍然出现 unicode 错误。
from pathlib import Path
file_path = "c:\Users\username\Documents\folder1\some_file.txt"
file_path = Path(file_path).absolute()
with open(fpath, 'r', encoding='utf-8') as f:
line = f.readlines()
for line in f:
print(line)
【问题讨论】:
-
双反斜杠的错误是什么?在普通的 Python 字符串中,\u 是 unicode 字符的开头,Python 无法解码,因为 \Users 和 \usern 不是有效的 unicode 字符。你确定你的文件路径是正确的吗?
-
@Altareos。错误是相同的“没有这样的文件或目录”。我已经确认文件路径是正确的。
-
我愿意相信根本无法找到文件的错误消息。为了进行测试,请将文件移动到更简单的位置(例如 C: 驱动器的根目录)并使用该路径进行尝试。
-
执行
os.listdir(r"c:\Users\username\Documents\folder1")以查看 Python 在该目录中看到的确切内容 - 也许该文件实际上名为some_file.txt.txt,并且 Windows 有助于隐藏其中一个扩展。 -
只是为了确保...您并不是真的要查看名为
username的文件夹,对吧?
标签: python python-3.x python-unicode