提问人:Miesje 提问时间:5/24/2016 最后编辑:Donald DuckMiesje 更新时间:10/26/2022 访问量:2726337
错误“(unicode 错误)'unicodeescape' 编解码器无法解码位置 2-3 中的字节:截断 \UXXXXXXXX 转义”[重复]
Error "(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape" [duplicate]
问:
我正在尝试将CSV文件读入Python(Spyder),但不断收到错误。我的代码:
import csv
data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)
print(data)
我收到以下错误:
SyntaxError:(unicode 错误)“unicodeescape”编解码器无法解码字节 在位置 2-3:截断 \UXXXXXXXX 转义
我试图替换 with 或 with,我试着放一个 before ,但所有这些东西都没有用。\
\\
/
r
"C..
答:
字符串中的第一个反斜杠被解释为特殊字符。事实上,因为它后面跟着一个“U”,所以它被解释为 Unicode 码位的开头。
要解决此问题,您需要对字符串中的反斜杠进行转义。执行此操作的直接方法是将反斜杠加倍:
data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")
如果您不想在字符串中转义反斜杠,并且不需要在字符串中使用转义码或引号,则可以改用“raw”字符串,在其前面使用“r”,如下所示:
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
评论
vektis_agb_zorgverlener.txt
你可以把你的实际路径放在字符串的前面,它表示一个原始字符串。例如:r
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
评论
双 \ 应该适用于 Windows,但您仍然需要注意路径中提到的文件夹。所有这些(文件名除外)都必须存在。否则,您将收到错误。
发生此错误,因为您使用的是普通字符串作为路径。您可以使用以下三种解决方案之一来解决您的问题:
1:放在普通字符串之前。它将普通字符串转换为原始字符串:r
pandas.read_csv(r"C:\Users\DeePak\Desktop\myac.csv")
2:
pandas.read_csv("C:/Users/DeePak/Desktop/myac.csv")
3:
pandas.read_csv("C:\\Users\\DeePak\\Desktop\\myac.csv")
评论
只需在前面放一个 r 就可以了。
例如:
white = pd.read_csv(r"C:\Users\hydro\a.csv")
它通过中和 f = open('F:\\file.csv 的 '') 对我有用
评论
尝试将文件路径写入,即在驱动器后使用双反斜杠,而不是"C:\\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener"
"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener"
评论
根据 String 字面量:
字符串文字可以括在单引号(即 )或双引号(即 )中。它们也可以包含在三个单引号或双引号的匹配组中(这些通常称为三引号字符串)。
'...'
"..."
反斜杠字符(即 )用于转义具有特殊含义的字符,例如换行符、反斜杠本身或引号字符。字符串文字可以选择以字母或 .此类字符串称为原始字符串,对反斜杠转义序列使用不同的规则。
\
r
R
在三引号字符串中,允许使用未转义的换行符和引号,但一行中的三个未转义引号终止字符串。
除非存在 or 前缀,否则字符串中的转义序列将根据类似于标准 C 使用的规则进行解释。
r
R
因此,理想情况下,您需要更换以下行:
data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
到以下任一字符:
使用原始前缀和单引号(即):
'...'
data = open(r'C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener')
使用双引号(即 )和转义反斜杠字符(即):
"..."
\
data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")
使用双引号(即 )和正斜杠字符(即):
"..."
/
data = open("C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener")
评论
将其视为原始字符串。作为一个简单的答案,在Windows路径之前添加。r
import csv
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)
print(data)
在字符串之前添加。它将普通字符串转换为原始字符串。r
评论
xl.Workbooks.Open(Filename=r"C:\Users\david\Desktop\xl_HW.xlsm",ReadOnly=1)
评论
/