Ответ 1
У меня возникла аналогичная проблема. Оказалось, что 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 МБ...
У меня возникла аналогичная проблема. Оказалось, что CSV, который я загрузил, не имел никаких прав. Сообщение об ошибке из pandas не указало это, что затрудняет отладку.
Убедитесь, что у вашего файла есть разрешения на чтение
import pandas as pd
pd.read_csv("your_file.txt", engine='python')
Попробуй это. Это полностью сработало для меня.
У меня была такая же проблема, вы должны проверить свои разрешения.
После chmod 644 file.csv
он работал хорошо.
Я нахожу ту же проблему под ОС 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')
все хорошо.
Мэй, чтобы помочь тебе.
Я предполагаю, что ваш файл 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, используйте синтаксис печати без скобок. Надеюсь, что это поможет вам
Вы можете попробовать использовать os.path.join()
для создания вашего пути:
import os
rpath = os.path.join('U:','folder','Input','test.csv')
df = pd.read_csv(rpath, sep=';')
Чтобы пересечь путь на основе родительского каталога, вы можете использовать:
os.path.pardir
Столкнулся с той же проблемой на окнах. Пытался использовать решение, предоставленное Дэном Ли, но получал ненормальные результаты со строками и столбцами. Я не уверен, было ли это из-за японских символов в моих файлах 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")
Это сработало для меня.
Та же проблема, другое решение здесь.
Ранее я пытался загрузить свой файл в Excel, и Excel потерпел крах, но, должно быть, сохранил некоторую блокировку файла, потому что после принудительного выхода из Excel он загрузился, как и ожидалось.