web-dev-qa-db-fra.com

OSError: L'initialisation à partir d'un fichier a échoué sur csv dans Pandas

J'ai déjà parcouru tous les posts similaires sur ce sujet, mais je n'ai trouvé aucune solution ...

Jusqu'à présent, les Pandas ont lu tous mes fichiers CSV sans aucun problème, mais maintenant, il semble y avoir un problème.

En faisant:

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

Je reçois:

OSError Traceback (l'appel le plus récent Dernier) dans () ----> 1 df = pd.read_csv (r'path Übersicht\Input\test\test.csv ', sep ='; ')

c:\programmes\python36\lib\site-packages\pandas\io\parsers.py dans parser_f (filepath_or_buffer, sep, délimiteur, en-tête, noms, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, moteur, convertisseurs, true_values, false_values, skipinitialspace, skprows, nrows, .noul. , na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, itérateur, taille de bloc, compression, milliers, décimal, lineterminator, quot. . dialecte, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, skip_footer, doublequote, delim_whitespace, as_recarray, compactes, use_unsigned, low_memory, buffer_lines, memory_map, memory_map, float_precision) 703 skip_blank_lines = skip_blank_lines) 704 -> 705 retourne _read (filepath_or_buffer, kwds) 706 707 parser_f. name = name

c:\programmes\python36\lib\site-packages\pandas\io\parsers.py dans _read (filepath_or_buffer, kwds) 443 444 # Crée l’analyseur . -> 445 parser = TextFileReader (filepath_or_buffer, ** kwds) 446 447 si chunksize ou itérateur:

c:\programmes\python36\lib\site-packages\pandas\io\parsers.py dans 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 (auto):

c:\programmes\python36\lib\site-packages\pandas\io\parsers.py dans _make_engine (auto, moteur) 1043 def _make_engine (auto, moteur = 'c'): 1044 si moteur == 'c': -> 1045 self._engine = CParserWrapper (self.f, ** self.options) 1046 sinon: 1047 si le moteur == 'python':

c:\programmes\python36\lib\site-packages\pandas\io\parsers.py dans init (self, src, ** kwds) 1682 kwds ['allow_leading_cols'] = self.index_col n'est pas 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: l'initialisation à partir d'un fichier a échoué

Les autres fichiers du même dossier qui sont des fichiers XLS sont accessibles sans problème. 

Lorsque vous utilisez la bibliothèque Python, procédez comme suit:

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

for row in file:
    print(row)
    break

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

le fichier est en cours de chargement et la première ligne est imprimée, mais je reçois:

ValueError: chemin d'accès au fichier ou type d'objet tampon non valide: 

Probablement parce que je ne peux pas utiliser read_csv de cette façon ...

Toute aide, de préférence pour que la première fonction Pandas fonctionne? Malheureusement, je ne peux pas partager le fichier CSV ... il ne devrait contenir aucun caractère spécial, sauf les caractères allemands. La taille du fichier est de 10 Mo ...

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

Essaye ça. Cela a totalement fonctionné pour moi.

25
Dane Lee

J'ai rencontré un problème similaire. Il s'est avéré que le fichier CSV que j'avais téléchargé n'avait aucune autorisation. Le message d'erreur de pandas ne l'indiquait pas, rendant le débogage difficile.

Vérifiez que votre fichier dispose d'autorisations de lecture

11
Breck

J'ai eu le même problème, vous devriez vérifier vos autorisations.

Après chmod 644 file.csv cela a bien fonctionné.

8
Kornel Dylski

Je trouve le même problème sous Win10 OS lorsque je tente de lire un fichier csv dont le nom est en chinois. Ensuite, il n’ya plus de problème après avoir renommé mon fichier en EN. Peut-être devriez-vous vous assurer que votre chemin de fichier csv est complet en anglais.

OS: Windows 10; Version Python: 3.6.5; Ipython: 7.0.1; Pandas: 0.23.0

Tout d'abord, lors de l'utilisation

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

mon cahier ipython soulève une erreur 'OSError: l'initialisation à partir d'un fichier a échoué'.

Puis je renomme mon fichier en answers.csv

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

tout va bien.

Mai pour vous aider.

1
Sewen Scorpius

Vous pouvez essayer d'utiliser os.path.join() pour construire votre chemin: 

import os

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

Pour parcourir le chemin en fonction de votre répertoire parent, vous pouvez utiliser:

os.path.pardir
1
Varun kumar

Je suppose que votre fichier csv se trouve au même endroit (racine) . Si vous souhaitez simplement que le fichier csv soit lu et que le résultat s'affiche sous forme de texte dans votre console, procédez comme suit.

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

remarque: le code est pour Python 3, si vous utilisez Python 2, la syntaxe d'impression est utilisée sans crochets. J'espère que ceci vous aidera

0
Ranee