Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OSError: Initializing from file failed on csv in Pandas

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.

like image 412
rStorms Avatar asked May 27 '18 13:05

rStorms


5 Answers

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

Try this. It totally worked for me.

  • source : http://kkckc.tistory.com/187
like image 135
Dane Lee Avatar answered Nov 10 '22 01:11

Dane Lee


I ran into a similar problem. It turned out the CSV I had downloaded had no permissions at all. The error message from pandas did not point this out, making it hard to debug.

Check that your file have read permissions

like image 55
Breck Avatar answered Nov 10 '22 01:11

Breck


I had the same issue, you should check your permissions.

After chmod 644 file.csv it worked well.

like image 22
Kornel Dylski Avatar answered Nov 10 '22 03:11

Kornel Dylski


Same problem when I was trying to load files with Japanese filenames.

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

OSError: Initializing from file failed'

Then I added an argument engine="python".

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

It worked for me.

like image 6
QaraQoyunlu Avatar answered Nov 10 '22 03:11

QaraQoyunlu


I find the same problem under Win10 OS when I try to read a csv file which name is in Chinese. Then there's no problem any more after I rename my file into EN. Maybe you should ensure your full csv file path in EN.

OS:Windows 10; Python version:3.6.5; Ipython:7.0.1; Pandas:0.23.0

First, when use

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

my ipython notebook raise 'OSError: Initializing from file failed'.

Then I rename my file into answers.csv

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

everythings' OK.

May to help you.

like image 4
Sewen Scorpius Avatar answered Nov 10 '22 02:11

Sewen Scorpius