写入 Windows 文件路径时出现“Unicode 错误‘unicodeescape’编解码器无法解码字节...”[重复]
- 2024-11-27 10:43:00
- admin 原创
- 11
问题描述:
我在 Windows 7 机器上使用 Python 3.1。俄语是默认系统语言,utf-8 是默认编码。
查看上一个问题的答案,我尝试使用“编解码器”模块来获得一些运气。以下是几个示例:
>>> g = codecs.open("C:UsersEricDesktopeeline.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated UXXXXXXXX escape (<pyshell#39>, line 1)
>>> g = codecs.open("C:UsersEricDesktopSite.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated UXXXXXXXX escape (<pyshell#40>, line 1)
>>> g = codecs.open("C:Python31Notes.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 11-12: malformed N character escape (<pyshell#41>, line 1)
>>> g = codecs.open("C:UsersEricDesktopSite.txt", "r", encoding="utf-8")
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated UXXXXXXXX escape (<pyshell#44>, line 1)
我的最后一个想法是,我认为可能是因为 Windows 将一些文件夹(例如“用户”文件夹)“翻译”成了俄语(尽管输入“用户”仍然是正确的路径),所以我在 Python31 文件夹中尝试了。仍然没有运气。有什么想法吗?
解决方案 1:
问题出在字符串上
"C:UsersEricDesktopeeline.txt"
此处,U
以"C:Users
... 开头的是八个字符的 Unicode 转义符,例如U00014321
。在您的代码中,转义符后跟字符“s”,这是无效的。
您要么需要复制所有反斜杠:
"C:\\Users\\Eric\\Desktop\\beeline.txt"
或者在字符串中添加前缀r
(以生成原始字符串):
r"C:UsersEricDesktopeeline.txt"
解决方案 2:
这是 Windows 上的典型错误,因为默认用户目录是C:/user<your_user>
,所以当您想将此路径作为字符串参数传递到 Python 函数时,您会收到 Unicode 错误,因为是/u
Unicode 转义。如果后面的 8 个字符/u
不是数字,则会产生错误。
为了解决这个问题,只需将反斜杠加倍:C:/user\<your_user>...
这将确保 Python 将单个反斜杠视为单个反斜杠。
解决方案 3:
前缀 with'r'
效果很好,但需要使用正确的语法。例如:
passwordFile = open(r'''C:UsersBobSecretPasswordFile.txt''')
这里不需要\
-保持可读性并且运行良好。
解决方案 4:
使用 Python 3 时我遇到了这个问题:
self.path = 'T:PythonScriptsProjectsUtilities'
产生了这个错误:
self.path = 'T:PythonScriptsProjectsUtilities'
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in
position 25-26: truncated UXXXXXXXX escape
有效的解决方法是:
self.path = r'T:PythonScriptsProjectsUtilities'
似乎 '\U' 产生了错误,而字符串前面的 'r' 关闭了八个字符的 Unicode 转义(对于原始字符串),导致失败。(这有点过于简单,但如果您不关心 unicode,它就可以工作)
希望这对某人有帮助
解决方案 5:
路径 = pd.read_csv(**'C:UsersmraviDesktopilename'**)
错误是由于提到的路径
'r'
在路径前添加
路径 = pd.read_csv(**r'C:UsersmraviDesktopilename'**)
这会很好。
解决方案 6:
或者您可以在路径中将“\”替换为“/”。
解决方案 7:
我在 python 3.2 中遇到了同样的错误。
我有用于发送电子邮件的脚本和:
csv.reader(open('work_dir/uslugi1.csv', newline='', encoding='utf-8'))
当我删除文件的第一个字符时,uslugi1.csv
工作正常。
解决方案 8:
参考openpyxl文档,可以做如下更改。
from openpyxl import Workbook
from openpyxl.drawing.image import Image
wb = Workbook()
ws = wb.active
ws['A1'] = 'Insert a xxx.PNG'
# Reload an image
img = Image(**r**'x:xxxxxxxxx.png')
# Insert to worksheet and anchor next to cells
ws.add_image(img, 'A2')
wb.save(**r**'x:xxxxxx.xlsx')
解决方案 9:
我遇到了同样的错误,只需卸载并再次安装 numpy 包,就可以了!
解决方案 10:
我遇到了这个错误。我有一个主 Python 脚本,它调用另一个 Python 脚本中的函数。在第一个脚本的末尾,我有一个用 指定的注释块''' '''
。我因为这个注释代码块而收到此错误。我找到错误后多次重复此错误以确保这是错误,结果确实如此。我仍然不确定原因。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件