wake-up-neo.com

OSError: Die Initialisierung aus einer Datei ist in CSV in Pandas fehlgeschlagen

Ich habe bereits alle ähnlichen Beiträge zu diesem Thema durchgesehen, konnte aber keine Lösung finden ...

Bisher haben Pandas alle meine CSV-Dateien problemlos durchgelesen. Jetzt scheint es jedoch ein Problem zu geben.

Wenn Sie:

df = pd.read_csv(r'path to file', sep=';')

Ich bekomme:

OSError Traceback (letzter Aufruf Last) in () ----> 1 df = pd.read_csv (r'Pfad Übersicht\Eingabe\test\test.csv ', sep ='; ')

c:\programme\python36\lib\site-packages\pandas\io\parsers.py in parser_f (filepath_or_buffer, sep, Trennzeichen, Header, Namen, index_col, usecols, squeeze, Präfix, mangle_dupe_cols, dtype, engine, Konverter, true_values, false_values, skipinitialspace, skiprows, nrows, .r na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, Komprimierung, tausende, dezimal, lineterminator, quotechar, quotingar, quotingar, quotingar, quotingar, quotingar, quotingar, quotingar, quotingar, quotingar, quotingar, quotingar, quotingar, quotingar, quotingar, quotingar. dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, skip_footer, doublequote, delim_whitespace, as_recarray, compact_ints, use_unsigned, low_memory, buffer_map, float_precision) 703 skip_blank_lines = skip_blank_lines) 704 -> 705 return _read (Dateipfad_oder_Puffer, kwds) 706 707 parser_f. name = name

c:\programme\python36\lib\site-packages\pandas\io\parsers.py in _read (Dateipfad_oder_Puffer, kwds) 443 444 # Erstellen Sie den Parser . -> 445 Parser = TextFileReader (Dateipfad_oder_Puffer, ** kwds) 446 447 wenn Chunksize oder Iterator:

c:\programme\python36\lib\site-packages\pandas\io\parsers.py in init (self, f, engine, ** kwds) 812 self.options ['has_index_names'] = kwds ['has_index_names'] 813 -> 814 self._make_engine (self.engine) 815 816 def close (selbst):

c:\programme\python36\lib\site-packages\pandas\io\parsers.py in _make_engine (self, engine) 1043 def _make_engine (self, engine = 'c'): 1044, wenn engine == 'c': -> 1045 self._engine = CParserWrapper (self.f, ** self.options) 1046 sonst: 1047 wenn engine == 'python':

c:\programme\python36\lib\site-packages\pandas\io\parsers.py in init (self, src, ** kwds) 1682 kwds ['allow_leading_cols'] = self.index_col ist nicht False 1683 -> 1684 self._reader = Parsers.TextReader (src, ** kwds) 1685 1686 # XXX

pandas_libs\parsers.pyx in pandas._libs.parsers.TextReader. cinit ()

pandas_libs\parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source ()

OSError: Das Initialisieren aus einer Datei ist fehlgeschlagen

Auf andere Dateien im selben Ordner, die XLS-Dateien sind, kann problemlos zugegriffen werden. 

Wenn Sie die Python-Bibliothek wie folgt verwenden:

import csv
file = csv.reader(open(r'pathtofile')) 

for row in file:
    print(row)
    break

df = pd.read_csv(file, sep=';')

die Datei wird geladen und die erste Zeile wird gedruckt, jedoch bekomme ich:

ValueError: Ungültiger Dateipfad oder Pufferobjekttyp: 

Wahrscheinlich, weil ich read_csv auf diese Weise nicht verwenden kann ...

Irgendwelche Hilfe, vorzugsweise um die erste Pandas-Funktion zum Laufen zu bringen? Leider kann ich die CSV-Datei nicht teilen. Sie sollte keine Sonderzeichen außer deutschen Zeichen enthalten. Die Dateigröße beträgt 10 MB ...

8
rStorms
import pandas as pd
pd.read_csv("your_file.txt", engine='python')

Versuche dies. Für mich hat es total funktioniert.

25
Dane Lee

Ich bin auf ein ähnliches Problem gestoßen. Es stellte sich heraus, dass der CSV, den ich heruntergeladen hatte, überhaupt keine Berechtigungen hatte. Die Fehlermeldung von Pandas hat darauf nicht hingewiesen, was das Debuggen erschwert.

Überprüfen Sie, ob Ihre Datei über Leseberechtigungen verfügt

11
Breck

Ich hatte das gleiche Problem, Sie sollten Ihre Berechtigungen überprüfen.

Nach chmod 644 file.csv hat es gut funktioniert.

8
Kornel Dylski

Dasselbe Problem, als ich versuchte, Dateien mit japanischen Dateinamen zu laden.

import pandas as pd
result = pd.read_csv('./result/けっこう.csv')

OSError: Initializing from file failed'

Dann habe ich ein Argument hinzugefügt engine="python".

result = pd.read_csv('./result/けっこう.csv', engine="python")

Es hat bei mir funktioniert.

2
QaraQoyunlu

Stieß auf das gleiche Problem unter Windows. Versuchte, die von Dan Lee bereitgestellte Lösung zu verwenden, erzielte jedoch abnormale Ergebnisse mit Zeilen und Spalten. Ich bin mir nicht sicher, ob dies an den japanischen Zeichen in meinen CSV-Dateien lag oder nicht, aber durch die eindeutige Definition des Kodierungsformats wurde das Problem für mich gelöst.

import pandas as pd
pd.read_csv("your_file.txt", engine='python', encoding = "utf-8-sig")
2
kunal Vyas

Ich finde das gleiche Problem unter Win10 OS, wenn ich versuche, eine CSV-Datei zu lesen, deren Name auf Chinesisch steht. Dann gibt es kein Problem mehr, nachdem ich meine Datei in EN umbenannt habe. Vielleicht sollten Sie Ihren vollständigen CSV-Dateipfad in EN sicherstellen.

Betriebssystem: Windows 10; Python-Version: 3.6.5; Ipython: 7.0.1; Pandas: 0,23,0

Erstens beim Gebrauch

import pandas as pd
answer_df = pd.read_csv('./答案.csv')

mein ipython-notebook hebt 'OSError: Initialisierung aus Datei fehlgeschlagen' ab.

Dann benenne ich meine Datei in answers.csv um

import pandas as pd
answer_df = pd.read_csv('./answers.csv')

alles ist in Ordnung.

Mai, um Ihnen zu helfen.

1
Sewen Scorpius

Sie können versuchen, os.path.join() zu verwenden, um Ihren Pfad zu erstellen: 

import os

rpath = os.path.join('U:','folder','Input','test.csv')
df = pd.read_csv(rpath, sep=';')

Um einen Pfad basierend auf Ihrem übergeordneten Verzeichnis zu durchlaufen, können Sie Folgendes verwenden:

os.path.pardir
1
Varun kumar

ändern Sie einfach die Berechtigungen der CSV-Datei, es würde funktionieren

chmod 750 filename.csv (in der Befehlszeile)

oder

! chmod 750 filename.csv (in jupyter notebook)

Ich gehe davon aus, dass sich Ihre CSV-Datei am selben Ort befindet (root). Wenn Sie nur die CSV-Datei lesen möchten und das Ergebnis erhalten, das als Text in Ihrer Konsole angezeigt wird, tun Sie dies einfach

import csv
with open('your_file.csv', 'r') as csvFile:
    reader = csv.reader(csvFile)
    for row in reader:
        print(row)
csvFile.close()

hinweis: Der Code ist für Python 3, wenn Sie Python 2 verwenden, wird die Drucksyntax ohne Klammern verwendet. Hoffe, das wird dir helfen

0
Ranee

pandas read_csv OSError: Initialisierung aus Datei fehlgeschlagen

Wir könnten es versuchen chmod 600 file.csv.

0
icanxy

Gleiches Problem andere Lösung hier.

Ich hatte zuvor versucht, meine Datei in Excel zu laden, und Excel war abgestürzt, musste jedoch eine Dateisperre beibehalten haben, da Excel beim erzwungenen Beenden wie erwartet geladen wurde.

0
gkennos