Python – OSError: Initializing from file failed on csv in Pandas

csvdataframepandaspython

So far pandas read through all my CSV files without any problem, however now there seems to be a problem..

When doing:

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

I get:

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

Other files in the same folder that are XLS files can be accessed without an issue.

When using the Python library like so:

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

for row in file:
    print(row)
    break

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

the file is being loaded and the first line is printed. However I get:

ValueError: Invalid file path or buffer object type:

Probably because I can't use read_csv this way…

How to get the first pandas function to work? The csv does not contain any special characters except German ones. The filesize is 10MB.

Best Answer

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

Try this. It totally worked for me.

Related Topic