关于python:OSError:在Pandas中的csv上从文件初始化失败

OSError: Initializing from file failed on csv in Pandas

我已经查看过这个问题的所有类似帖子,但找不到任何解决方案......

到目前为止,Pandas读完所有我的CSV文件没有任何问题,但现在似乎有问题..

做的时候:

1
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库时:

1
2
3
4
5
6
7
8
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 ...它不应该包含除德语之外的任何特殊字符..文件大小为10mb ...


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

试试这个。它完全适合我。

  • 来源:http://kkckc.tistory.com/187


我遇到了类似的问题。事实证明,我下载的CSV根本没有权限。来自pandas的错误消息没有指出这一点,使得调试变得困难。

检查您的文件是否具有读取权限


我有同样的问题,你应该检查你的权限。

chmod 644 file.csv之后它运作良好。


当我尝试读取名称为中文的csv文件时,我在Win10操作系统下发现了同样的问题。在将文件重命名为EN后,再没有问题了。也许您应该确保EN中的完整csv文件路径。

操作系统:Windows 10; Python版本:3.6.5; IPython的:7.0.1;熊猫:0.23.0

首先,使用时

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

我的ipython笔记本引发'OSError:从文件初始化失败'。

然后我将我的文件重命名为answers.csv

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

一切都好。

愿可以帮到你。


当我尝试加载带有日文文件名的文件时,同样的问题。

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

OSError: Initializing from file failed'

然后我添加了一个参数engine="python"

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

它对我有用。


在Windows上遇到同样的问题。
试图使用Dan Lee提供的解决方案,但是行和列的结果异常。我不确定这是不是因为我的csv文件中的日文字符,而是通过明确定义编码格式解决了我的问题。

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


您可以尝试使用os.path.join()来构建路径:

1
2
3
4
import os

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

要根据父目录遍历路径,可以使用:

1
os.path.pardir

我假设你的csv文件在同一个地方(root)。
如果您只想读取csv文件,并获得将在控制台中显示为文本的结果,请执行此操作

1
2
3
4
5
6
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,则使用不带括号的打印语法。希望对你有帮助


只是改变csv文件的渗透,它会工作

chmod 750 filename.csv(在命令行中)

要么

!chmod 750 filename.csv(在jupyter笔记本中)


pandas read_csv OSError:从文件初始化失败

我们可以尝试chmod 600 file.csv


同样问题不同的解决方案。

我之前曾尝试在excel中加载我的文件,而excel已经崩溃但必须保留一些文件锁定,因为一旦我强制退出excel,它就会按预期加载。