我试图将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错误)“unicodesescape”编解码器不能解码字节 在位置2-3:截断\UXXXXXXXX转义

我试过把\换成\\或者/,还试过在“C”前面加一个r。,但所有这些都不起作用。


当前回答

字符串中的第一个反斜杠将被解释为一个特殊字符。事实上,因为它后面跟着一个“U”,所以它被解释为Unicode码位的开始。

要解决这个问题,需要转义字符串中的反斜杠。直接的方法是通过双反斜杠:

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")

其他回答

它通过中和“by f = open(' f:\\file.csv')”来为我工作。

把它看作一个原始字符串。就像一个简单的答案,在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)

字符串中的第一个反斜杠将被解释为一个特殊字符。事实上,因为它后面跟着一个“U”,所以它被解释为Unicode码位的开始。

要解决这个问题,需要转义字符串中的反斜杠。直接的方法是通过双反斜杠:

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")

在字符串前加上r。它将普通字符串转换为原始字符串。

双\应该适用于Windows,但你仍然需要照顾你在路径中提到的文件夹。它们(除了文件名)都必须存在。否则您将得到一个错误。