OSError: Инициализация из файла не удалась csv в Pandas

Я уже просмотрел все похожие сообщения по этой проблеме, но не нашел никакого решения...

До сих пор Pandas без проблем просматривали все мои CSV файлы, но теперь, похоже, проблема.

При выполнении:

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

Я получил:

OSError Traceback (последний последний вызов) в() → 1 df = pd.read_csv (r'path Übersicht\Input\test\test.csv, sep = ';')

c:\program files\python36\lib\site-packages\pandas\io\parsers.py в parser_f (filepath_or_buffer, sep, разделитель, заголовок, имена, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, преобразователи, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousand, decimal, lineterminator, quotechar, quoting, escapechar, comment, кодировка, диалект, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, skip_footer, doublequote, delim_whitespace, as_recarray, compact_ints, use_unsigned, low_memory, buffer_lines, memory_map, float_precision) 703 skip_blank_lines = skip_blank_lines) 704 → 705 return _read (filepath_or_buffer, kwds) 706 707 parser_f. name= name

c:\program files\python36\lib\site-packages\pandas\io\parsers.py в _read (filepath_or_buffer, kwds) 443 444 # Создайте парсер. → 445 parser = TextFileReader (filepath_or_buffer, ** kwds) 446 447, если chunksize или iterator:

c:\program files\python36\lib\site-packages\pandas\io\parsers.py в 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 (self):

c:\program files\python36\lib\site-packages\pandas\io\parsers.py в _make_engine (self, engine) 1043 def _make_engine (self, engine = 'c'): 1044 if engine == 'c': → 1045 self._engine = CParserWrapper (self.f, ** self.options) 1046 else: 1047 if engine == 'python':

c:\program files\python36\lib\site-packages\pandas\io\parsers.py в init (self, src, ** kwds) 1682 kwds ['allow_leading_cols'] = self.index_col не False 1683 → 1684 self._reader = parsers.TextReader(src, ** kwds) 1685 1686 # XXX

pandas_libs\parsers.pyx в файле pandas._libs.parsers.TextReader. cinit()

pandas_libs\parsers.pyx в файле pandas._libs.parsers.TextReader._setup_parser_source()

OSError: сбой инициализации из файла

Другие файлы в той же папке, которые являются файлами XLS, могут быть доступны без проблем.

При использовании библиотеки Python:

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

for row in file:
    print(row)
    break

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

файл загружается и печатается первая строка, однако я получаю:

ValueError: недопустимый путь к файлу или типу буфера:

Вероятно, потому что я не могу использовать read_csv таким образом...

Любая помощь, желательно, чтобы первая функция Pandas работала? К сожалению, я не могу поделиться CSV... он не должен содержать никаких специальных символов, кроме немецких... Размер файла: 10 МБ...

Ответы

Ответ 1

У меня возникла аналогичная проблема. Оказалось, что CSV, который я загрузил, не имел никаких прав. Сообщение об ошибке из pandas не указало это, что затрудняет отладку.

Убедитесь, что у вашего файла есть разрешения на чтение

Ответ 2

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

Попробуй это. Это полностью сработало для меня.

Ответ 3

У меня была такая же проблема, вы должны проверить свои разрешения.

После chmod 644 file.csv он работал хорошо.

Ответ 4

Я нахожу ту же проблему под ОС Win10, когда я пытаюсь прочитать CSV файл с именем на китайском языке. Тогда больше нет проблем после того, как я переименую свой файл в EN. Может быть, вы должны обеспечить полный путь к CSV файлу в EN.

ОС: Windows 10; Версия Python: 3.6.5; IPython: 7.0.1; Панды: 0.23.0

Во-первых, при использовании

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

моя записная книжка ipython вызывает сообщение "Ошибка OSE: инициализация из файла не удалась".

Затем я переименовываю свой файл в answers.csv

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

все хорошо.

Мэй, чтобы помочь тебе.

Ответ 5

Я предполагаю, что ваш файл csv находится в одном месте (root). Если вы просто хотите, чтобы файл csv был прочитан, и получите результат, который будет отображаться как текст в консоли, просто выполните это

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

note: код для Python 3, если вы используете Python 2, используйте синтаксис печати без скобок. Надеюсь, что это поможет вам

Ответ 6

Вы можете попробовать использовать os.path.join() для создания вашего пути:

import os

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

Чтобы пересечь путь на основе родительского каталога, вы можете использовать:

os.path.pardir

Ответ 7

Столкнулся с той же проблемой на окнах. Пытался использовать решение, предоставленное Дэном Ли, но получал ненормальные результаты со строками и столбцами. Я не уверен, было ли это из-за японских символов в моих файлах csv или нет, но четкое определение формата кодировки решило проблему для меня.

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

Ответ 8

pandas read_csv OSError: Ошибка инициализации из файла

Мы могли бы попробовать chmod 600 file.csv.

Ответ 9

просто измените проницаемость файла CSV, это будет работать

chmod 750 filename.csv (в командной строке)

или же

! chmod 750 filename.csv (в блокноте jupyter)

Ответ 10

Та же проблема, когда я пытался загрузить файлы с японскими именами файлов.

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

OSError: Initializing from file failed'

Затем я добавил аргумент engine="python".

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

Это сработало для меня.

Ответ 11

Та же проблема, другое решение здесь.

Ранее я пытался загрузить свой файл в Excel, и Excel потерпел крах, но, должно быть, сохранил некоторую блокировку файла, потому что после принудительного выхода из Excel он загрузился, как и ожидалось.