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 ...
import pandas as pd
pd.read_csv("your_file.txt", engine='python')
Versuche dies. Für mich hat es total funktioniert.
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
Ich hatte das gleiche Problem, Sie sollten Ihre Berechtigungen überprüfen.
Nach chmod 644 file.csv
hat es gut funktioniert.
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.
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")
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.
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
ä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
pandas read_csv OSError: Initialisierung aus Datei fehlgeschlagen
Wir könnten es versuchen chmod 600 file.csv
.
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.