Ik probeer een .csv-bestand in Python (Spyder) te lezen, maar ik krijg steeds een foutmelding. Mijn code:
import csv
data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
data = csv.reader(data)
print(data)
Ik krijg de volgende foutmelding:
SyntaxError: (unicode-fout) ‘unicodeescape’-codec kan bytes niet decoderen
in positie 2-3: afgekapte \UXXXXXXXX escape
Ik heb geprobeerd de \ te vervangen door \ of door / en ik heb geprobeerd een r voor “C..te zetten, maar al deze dingen werkten niet.
Antwoord 1, autoriteit 100%
Deze fout treedt op omdat u een normale tekenreeks als pad gebruikt. U kunt een van de drie volgende oplossingen gebruiken om uw probleem op te lossen:
1: Zet gewoon r
voor je normale tekenreeks, het zet de normale tekenreeks om in onbewerkte tekenreeks:
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")
Antwoord 2, autoriteit 13%
De eerste backslash in je string wordt geïnterpreteerd als een speciaal teken, in feite omdat het wordt gevolgd door een “U”, wordt het geïnterpreteerd als het begin van een unicode-codepunt.
Om dit op te lossen, moet je de backslashes in de tekenreeks escapen. Ik ken Python niet specifiek, maar ik denk dat je het doet door de backslashes te verdubbelen:
data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")
3, Autoriteit 7%
Overweeg het als een onbewerkte reeks. Gewoon eenvoudig antwoord, voeg r
vóór uw Windows-pad toe.
import csv data = open(r"C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener") data = csv.reader(data) print(data)
4, Autoriteit 3%
Probeer het bestandspad te schrijven als "C:\\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener"
ie met dubbele backslash na de drive in tegenstelling tot "C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener"
5, Autoriteit 2%
Zoals per string literalen :
Stringliteralen kunnen worden ingesloten binnen Single-aanhalingstekens (dwz
'...'
) of Dubbele offertes (dwz"..."
). Ze kunnen ook worden ingesloten in bijpassende groepen van drie enkelvoudige of dubbele aanhalingstekens (deze worden meestal aangeduid als triple-geciteerde snaren).Het backslash-teken (d.w.z.
\
) wordt gebruikt om tekens te escapen die anders een speciale betekenis zouden hebben, zoals newline, backslash zelf of het aanhalingsteken. Letterlijke tekenreeksen kunnen optioneel worden voorafgegaan door een letterr
ofr
. Dergelijke tekenreeksen worden onbewerkte tekenreeksengenoemd en gebruiken verschillende regels voor backslash-escapereeksen.In tekenreeksen met drie aanhalingstekenszijn niet-getrapte nieuwe regelsen aanhalingstekenstoegestaan, behalve dat de drie aanhalingstekens zonder escapetekensbeëindig in een rij de string.
Tenzij een voorvoegsel
r
ofr
aanwezig is, worden escape-reeksen in strings geïnterpreteerd volgens regels die vergelijkbaar zijn met die van Standard C.
Dus idealiter moet je de regel vervangen:
data = open("C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener")
Aan een van de volgende tekens:
-
Gebruik onbewerkteprefix en enkele aanhalingstekens(d.w.z.
'...'
):data = open(r'C:\Users\miche\Documents\school\jaar2\MIK\2.6\vektis_agb_zorgverlener')
-
Gebruik dubbele aanhalingstekens(bijv.
"..."
) en escapetekens voor backslash (bijv.\
):data = open("C:\\Users\\miche\\Documents\\school\\jaar2\\MIK\\2.6\\vektis_agb_zorgverlener")
-
Gebruik dubbele aanhalingstekens(d.w.z.
"..."
) en forwardslash-tekens (d.w.z./
):data = open("C:/Users/miche/Documents/school/jaar2/MIK/2.6/vektis_agb_zorgverlener")
Antwoord 6, autoriteit 2%
zet r
voor je tekenreeks, het converteert normale tekenreeks naar onbewerkte tekenreeks
Antwoord 7
Gewoon een r ervoor zetten werkt goed.
bijvoorbeeld:
white = pd.read_csv(r"C:\Users\hydro\a.csv")
Antwoord 8
het werkte voor mij door de ‘\’ te neutraliseren door f = open(‘F:\\file.csv’)
Antwoord 9
De dubbele \ zou moeten werken voor Windows, maar je moet nog steeds zorgen voor de mappen die je in je pad vermeldt. Ze moeten allemaal (behalve de bestandsnaam) bestaan. anders krijg je een foutmelding.