OSError: сбой при инициализации из файла в csv в Pandas

Пока pandas без проблем читал все мои CSV-файлы, но теперь, похоже, проблема ..

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

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

Я получил:

OSError Traceback (most recent call last) in () ----> 1 df = pd.read_csv(r'path Übersicht\Input\test\test.csv', sep=';')

c:\program files\python36\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, 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, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, 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 in _read(filepath_or_buffer, kwds) 443 444 # Create the parser. --> 445 parser = TextFileReader(filepath_or_buffer, **kwds) 446 447 if chunksize or iterator:

c:\program files\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(self):

c:\program files\python36\lib\site-packages\pandas\io\parsers.py in _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 in init(self, src, **kwds) 1682 kwds['allow_leading_cols'] = self.index_col is not 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: Initializing from file failed

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

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

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

for row in file:
    print(row)
    break

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

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

ValueError: Invalid file path or buffer object type:

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

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

Похоже какая-то проблема в r'path to file', можно подробнее уточнить?

jezrael 27.05.2018 15:02

Путь отлично работает для файлов xls ... df = pd.read_csv (r'U: \ folder \ Input \ test.csv ', sep ='; ')

rStorms 27.05.2018 15:17

На мой взгляд, можно скопировать файл в ту же папку, что и сценарий .py, а затем сначала попробовать df = df.read_csv('file.csv', sep=';') ... Но если pd.read_excel работает, тогда трудно найти проблему ...

jezrael 27.05.2018 15:23
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
37
3
80 246
16
Перейти к ответу Данный вопрос помечен как решенный

Ответы 16

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

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

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

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

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

Это избавило от ошибки, но результат не был обычным фреймворком Pandas. В частности, исчезли заголовки столбцов и индексы строк.

Aaron Bramson 18.02.2019 06:18

Это помогло мне определить настоящую ошибку. При этом ошибка изменилась на Ошибка отказа в разрешении, а затем я понял, что выполняю read_csv в каталоге.

Alaa M. 07.05.2019 21:25

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

bluephoton 24.05.2019 10:18

Но в чем причина?

Eric Duminil 24.07.2019 11:48

Это решило эту проблему, но также, в сочетании с приведенными ниже ответами, заставило меня понять, что один из символов в имени файла был греческим, а не латинским (этот символ выглядит одинаково в обоих)!

Helen 17.11.2019 08:43

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

import os

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

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

os.path.pardir
Ответ принят как подходящий

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

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

Согласно github # 23784: read_csv выдает неправильное исключение при проблемах с разрешениями это было исправлено, но еще не выпущено, запланировано на 1.1. Подтвердите, как только выйдет 1.1.

smci 01.04.2020 02:40

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

После chmod 644 file.csv все заработало.

Спасибо! Это было разрешение, но не было явного сообщения об ошибке.

Claude COULOMBE 06.03.2019 06:32

Я обнаруживаю ту же проблему в ОС 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 вызывает ошибку OSError: сбой при инициализации из файла.

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

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

все хорошо.

Может вам помочь.

Спасибо, я понял, что один из символов в моем имени файла не был латинским, хотя выглядел так!

Helen 17.11.2019 08:44

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

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

не понимаете, что здесь отрицательный голос? просто предлагаю альтернативное решение на случай, если первое не сработает для кого-то, как и для меня ...

gkennos 01.08.2019 01:42

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

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

pandas read_csv OSError: сбой при инициализации из файла

Можно попробовать chmod 600 file.csv.

просто измените проникновение файла csv, это сработает

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

или же

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

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

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")

У меня это сработало.

И где вы добавили этот аргумент? Пожалуйста, дайте исчерпывающий ответ.

trotta 02.07.2019 11:12

Сработало у меня! Большое спасибо

Alibek Jakupov 09.08.2019 10:48

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

Сначала удалите панд:

conda remove pandas

Затем переустановите его, используя:

conda install -c anaconda pandas 

может быть причина проблемы в том, что версия панд слишком низкая, обновите панды до 1.0.1, все работает. используйте команду следующим образом:

pip install -U pandas

Я столкнулся с той же проблемой в течение нескольких часов, и на этот раз я попытался использовать zip-файл по ссылке, откуда я загрузил набор данных, и он работает -

df=pd.read_csv(r'C:\Users\ADMIN\news.csv')-Initializing from file failed df=pd.read_csv(r'C:\Users\ADMIN\news.zip')-Worked nicely!!

В моем случае я неправильно ввел путь.

Я работал с набором данных, загруженным с Kaggle в виде zip-архива. Структура загрузок была такой: main.zip/subfiles.zip. Я разархивировал основной, но решением было разархивировать subfiles.zip, и тогда мой требуемый файл оказался в subfiles.zip.

Таким образом, путь будет main / subfiles / wishfile.csv, и это было мое простое исправление.

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

Другие вопросы по теме