我正在尝试将.csv文件读取到Python(Spyder)中,但始终出现错误。我的代码:
import csv
data = open("C:\Users\miche\Documents\school\jaar2\MIK.6\vektis_agb_zorgverlener")
data = csv.reader(data)
print(data)
我收到以下错误:
SyntaxError:(unicode错误)“ unicodeescape”编解码器可以” t解码位置2-3中的字节
:截断的\ UXXXXXXXX转义
我试图用\或/替换\,并且尝试放置在“ C ..之前,但所有这些都不起作用。
#1 楼
发生此错误的原因是您使用普通字符串作为路径。您可以使用以下三种解决方案之一来解决问题: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")
评论
我喜欢第二个选项,它使路径可以跨Windows和Linux移植。感谢Python保护Windows的独特性。
–于申
18年4月24日在16:15
谢啦。第一个答案解决了我的问题,我所要做的就是添加r使我的字符串成为原始字符串。
–塞缪尔·恩德(Samuel Nde)
18年8月26日在7:23
就我而言,第一个\之前只有一个\起作用:C:\\ Users \ DeePak \ Desktop ...
–费里
18年8月26日在11:54
当文件路径为C时,这似乎是一个问题,使用Windows样式“ \”时,使用其他字母不会出现问题
–xgg
18-11-20在15:29
即使使用所有这些选项,它也可能无法工作。请检查您的文件夹和文件权限,是否为只读。我遇到过同样的问题。我改变了同样的办法
–BigData-Guru
8月15日18:34
#2 楼
字符串中的第一个反斜杠被解释为特殊字符,实际上是因为其后跟一个“ U”,它被解释为unicode代码点的开始。转义字符串中的反斜杠。我不特别了解Python,但我猜您可以通过将反斜杠加倍来做到这一点:data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
评论
当我使用双反斜杠时,程序说我要打开的文件不存在。
– Miesje
16年5月24日在9:27
这听起来很有希望,因为这意味着它现在认为字符串有效
–胸骨
16年5月24日在11:49
对。所以下一个问题是,该文件路径不存在。您是否省略了文件扩展名,例如vektis_agb_zorgverlener.txt? Windows资源管理器默认是隐藏文件扩展名,因为它很愚蠢。您可以修复它。
– bobince
16年5月25日在7:02
#3 楼
将其视为原始字符串。答案很简单,在Windows路径前添加r
。import csv
data = open(r"C:\Users\miche\Documents\school\jaar2\MIK.6\vektis_agb_zorgverlener")
data = csv.reader(data)
print(data)
#4 楼
您可以将r
放在带有实际路径的字符串前面,这表示原始字符串。例如:data = open(r"C:\Users\miche\Documents\school\jaar2\MIK.6\vektis_agb_zorgverlener")
评论
为了完整起见,这消除了对字符串中的字符(包括引号)进行转义的功能,因此根本无法将其用于包含引号的字符串,但在此处非常合适。
–胸骨
2月11日在22:47
#5 楼
尝试将文件路径写为"C:\Users\miche\Documents\school\jaar2\MIK.6\vektis_agb_zorgverlener"
,即在驱动器后面加上双反斜杠,而不是"C:\Users\miche\Documents\school\jaar2\MIK.6\vektis_agb_zorgverlener"
评论
有用 !您能告诉我为什么驱动器工作后双斜杠有效吗?
– ayat ullah sony
19-09-27在9:42
#6 楼
根据字符串文字:字符串文字可以用单引号(即
'...'
)或双引号(即"..."
)括起来。也可以将它们括在三个单引号或双引号(通常称为三引号字符串)的匹配组中。 ,例如换行符,反斜杠本身或引号字符。字符串文字可以选择以字母\
或r
为前缀。这样的字符串被称为原始字符串,并为反斜杠转义序列使用不同的规则。存在一个R
或r
前缀,根据类似于标准C的规则解释字符串中的转义序列。因此理想情况下,您需要替换以下行:
data = open("C:\Users\miche\Documents\school\jaar2\MIK.6\vektis_agb_zorgverlener")
对于以下任意一个字符:
使用原始前缀和单引号(例如
R
): data = open(r'C:\Users\miche\Documents\school\jaar2\MIK.6\vektis_agb_zorgverlener')
使用双引号(即
'...'
)和转义反斜杠字符(即"..."
): > data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
评论
我不明白您为什么在这里区分单引号和双引号? Python对它们的处理相同。
–snakecharmerb
19年4月28日在14:26
#7 楼
将r
放在字符串之前,它将普通字符串转换为原始字符串#8 楼
只需在前面放一个r即可。例如:
white = pd.read_csv(r"C:\Users\hydro\a.csv")
评论
这是否有帮助:stackoverflow.com/questions/904041/…您的替代解决方案如何不起作用?我希望原始字符串或带/而不是\的字符串都能正常工作。
当我使用双反斜杠时,程序说我要打开的文件不存在。
在将路径C:/ Users / user / Videos更改为C:\ Users \ user \ Videos时,使用'\'正斜杠而不是反斜杠