Python (unicode错误)和#x27;UnicodeScape';编解码器可以';t解码位置2-3中的字节:截断\uxxxxx转义
我试图将一个.csv文件读入Python(Spyder),但一直出现错误。我的代码:Python (unicode错误)和#x27;UnicodeScape';编解码器可以';t解码位置2-3中的字节:截断\uxxxxx转义,python,csv,unicode,syntax-error,Python,Csv,Unicode,Syntax Error,我试图将一个.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错误)'UnicodeScape'编解码器无法解码字节 在位置2-3:截断\uxxx
import csv
data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)
print(data)
我得到以下错误:
SyntaxError:(unicode错误)'UnicodeScape'编解码器无法解码字节
在位置2-3:截断\uxxxxx转义
我曾尝试用\或/替换\并尝试在“C”之前加上一个r。但所有这些都不起作用。字符串中的第一个反斜杠被解释为一个特殊字符,事实上,因为它后面跟一个“U”,它被解释为unicode代码点的开始 要解决这个问题,您需要对字符串中的反斜杠进行转义。我不太了解Python,但我想您可以通过将反斜杠加倍来实现:
data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")
您可以将
r
放在带有实际路径的字符串前面,该路径表示原始字符串。例如:
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
double\应该适用于Windows,但您仍然需要处理路径中提到的文件夹。所有文件夹(除文件名外)都必须存在。否则您将出现错误。发生此错误的原因是您使用普通字符串作为路径。您可以使用以下三种解决方案之一来解决问题: 1:只需将
r
放在普通字符串之前,即可将普通字符串转换为原始字符串:
pandas.read_csv(r"C:\Users\DeePak\Desktop\myac.csv")
2:
3:
只要在前面放一个r就行了 例如:
它通过f=open('f:\\file.csv')中和“\”而对我有效。尝试将文件路径写为
“C:\\Users\miche\Documents\school\jaar2\MIK\2.6\vektis\u agb\u zorgverlener”
即在驱动器后加上双反斜杠,而不是“C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis\u agb\u zorgverlener”“
根据:
字符串文字可以用单引号括起来(即,“…”
)或双引号括起来(即,“…”
)。它们也可以包含在三个单引号或双引号(通常称为三引号字符串)的匹配组中
反斜杠字符(即\
)用于转义具有特殊含义的字符,如换行符、反斜杠本身或引号字符。字符串文本可以选择前缀字母r
或r
。此类字符串称为原始字符串,并对反斜杠转义序列使用不同的规则
在三重引号字符串中,允许使用未转换的换行符和引号,但一行中的三个未转换的引号终止字符串
除非存在r
或r
前缀,否则字符串中的转义序列将根据与标准C使用的规则类似的规则进行解释
因此,理想情况下,您需要更换线路:
data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
到以下任一字符:
- 使用原始前缀和单引号(即
):“…”
- 使用双引号(即,
)和转义反斜杠字符(即,“…”
):\
- 使用双引号(即,
)和正斜杠字符(即,“…”
):/
- 将其视为原始字符串。只需简单回答,在windows路径之前添加
r
将
r
放在字符串之前,它会将普通字符串转换为原始字符串这是否有帮助:您的替代解决方案如何不起作用?我希望要么是一根粗线,或者使用/
而不是“\`”的字符串就可以正常工作。当我使用双反斜杠时,程序会说我要打开的文件不存在。请使用“\”正斜杠而不是反斜杠,同时指定路径C:/Users/user/Videos更改为C:\Users\user\Videos当我使用双反斜杠时,程序会说文件不存在“想要打开”不存在。这听起来很有希望,因为这意味着它现在认为字符串是有效的。所以下一个问题是,该文件路径不存在。您是否省略了文件扩展名,例如vektis\u agb\u zorgverlener.txt
?默认情况下,Windows资源管理器会对您隐藏文件扩展名,因为它很愚蠢;不过你可以。我喜欢第二个选项,它使path可以在Windows和Linux之间移植。感谢Python屏蔽了Windows的特性。谢谢你。第一个答案解决了我的问题。我所做的只是添加r使我的字符串变为原始。在我的例子中,在第一个之前只有一个\有效:C:\\Users\DeePak\Desktop…当文件路径为C时,这似乎是一个问题,使用其他字母在使用windows样式“\”时不会出现问题,即使有所有这些选项,它也可能不起作用。请检查您的文件夹和文件权限以及它是否为只读。我也有同样的问题。我改变了同样的方法,但效果很好。我不明白你为什么在这里区分单引号和双引号?Python以相同的方式处理它们。它可以工作!您能告诉我为什么驱动器后的双斜杠可以工作吗?为了完整起见,这会删除字符串中转义字符(包括引号)的功能,因此它不能用于包含引号的字符串,但在这里非常合适。
pandas.read_csv("C:\\Users\\DeePak\\Desktop\\myac.csv")
white = pd.read_csv(r"C:\Users\hydro\a.csv")
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")
import csv
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)
print(data)