Ваш файл записывается неправильно и начинается с nul
\0
char
>>> import pandas as pd
>>> with open("extract.csv", 'wb') as fh:
... fh.write(b"\0")
...
1
>>> pd.read_csv('extract.csv', sep = ",", encoding='utf-8', quotechar='"', engine='python')
Traceback (most recent call last):
[omitted]
_csv.Error: line contains NULL byte
During handling of the above exception, another exception occurred:
[omitted]
pandas.errors.ParserError: NULL byte detected. This byte cannot be processed in Python's native csv library at the moment, so please pass in engine='c' instead
Если ваш файл кажется пустым / очень маленьким, вероятно, он записывается неправильно и просто отсутствует его содержимое.
Если в вашем файле есть содержимое, вы можете решить проблему, начав немного глубже (метод fh.seek()
)
with open("extract.csv", encoding="utf-8") as fh:
fh.seek(1) # step forward into the file before attempting to read it
pd.read_csv(fh, sep = ",", encoding='utf-8', quotechar='"', engine='python')
Файлы имеют указатель, который указывает, где вы их читаете. Начав немного дальше, вы можете пропустить байт nul
, прежде чем передать его в pandas (который должен работать с любым файловым объектом с .read()
методом )
Если ваш файл пуст, вы получите другую ошибку
pandas.errors.EmptyDataError: No columns to parse from file