我正在尝试将.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 error)'unicodeescape'编解码器无法解码字节 在位置2-3:截断\ UXXXXXXXX转义
我试图用\替换\或用/和我试图在“C .. 之前放一个r但是所有这些都不起作用。
答案 0 :(得分:136)
发生此错误是因为您使用普通字符串作为路径。您可以使用以下解决方案之一来解决问题。
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")
答案 1 :(得分:21)
你的字符串中的第一个反斜杠被解释为一个特殊字符,实际上因为它后跟一个" U"它被解释为unicode代码点的开始。
要解决此问题,您需要转义字符串中的反斜杠。我并不专门了解Python,但我猜你是通过加倍反斜杠来实现的:
data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")
答案 2 :(得分:13)
您可以将r
放在字符串前面,并附上您的实际路径,表示原始字符串。例如:
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
答案 3 :(得分:9)
尝试将文件路径写为"C:\\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener"
,即在驱动器后使用双反斜杠而不是"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener"
答案 4 :(得分:6)
字符串文字可以包含在单引号(即
'...'
)或双引号(即"..."
)内。它们也可以包含在三个单引号或双引号的匹配组中(通常称为三引号字符串)。反斜杠字符(即
在用三重引号引起来的字符串中,允许使用不转义的换行符和引用,除了三个不转义的引号连续终止该字符串。\
)用于转义具有特殊含义的字符,例如换行符,反斜杠本身或引号字符。字符串文字可以选择以字母r
或R
开头。这样的字符串称为原始字符串,并对反斜杠转义序列使用不同的规则。除非存在
r
或R
前缀,否则将根据类似于标准C的规则来解释字符串中的转义序列。
因此理想情况下,您需要替换行:
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")
答案 5 :(得分:4)
将其视为原始字符串。答案很简单,在Windows路径前添加 r 。
@class
答案 6 :(得分:3)
只要把r放在前面就可以了。
例如:
white = pd.read_csv(r"C:\Users\hydro\a.csv")
答案 7 :(得分:3)
通过f = open('F:\\ file.csv')来中和'\'对我有用
答案 8 :(得分:2)
将r
放在字符串之前,它将普通字符串转换为原始字符串
答案 9 :(得分:0)
double \应该适用于Windows,但您仍需要处理您在路径中提到的文件夹。所有这些(exept文件名)必须存在。否则你会收到错误。