当前位置: 首页 > 面试题库 >

pandas:文件格式和文件名中带有重音/特殊字符的oserror

林丁雷
2023-03-14
问题内容

我试图用来pandas.read_csv从一些.csv文件中获取数据。只要文件名或文件路径中没有重音(例如ä,é,ü),此方法就可以正常工作。当我使用诸如这样的文件名时,düm1.csv出现以下错误:OSError: Initializing from file failed。我的代码是:

dum1 = pd.read_csv(r"C:\Users\MyName\Desktop\dumm12\düm1.csv", sep = ";", decimal = ",", encoding = "utf-8")

我正在使用pandas 0.20.1和python
3.6.0。我发现这在以前的版本中是一个问题,但我认为它已解决。有想法该怎么解决这个吗?我也发现了这个:https : //github.com/pandas-
dev/pandas/issues/15086

pd.show_versions()的输出:

安装的版本提交:无python:3.6.0.final.0 python位:64 OS:Windows
OS版本:10计算机:AMD64处理器:Intel64家族6模型78步骤3,真正的英特尔字节顺序:little
LC_ALL:无LANG:zh_cn地点:无。无

大熊猫:0.20.1 pytest:3.0.5 pip:9.0.1 setuptools:27.2.0 Cython:None numpy:1.11.3
scipy:0.18.1 xarray:None IPython:5.2.2 sphinx:1.5.1 patsy:0.4。 1
dateutil:2.6.0 pytz:2016.10 blosc:无瓶颈:1.2.0表:3.2.2
numexpr:2.6.2羽毛:无matplotlib:2.0.0 openpyxl:2.4.1 xlrd:1.0.0 xlwt:1.2.0
xlsxwriter:0.9.6 lxml:3.7.3 bs4:4.5.3 html5lib:0.999 sqlalchemy:1.1.5
pymysql:无psycopg2:无jinja2:2.9.5 s3fs:无pandas_gbq:无pandas_datareader:无


问题答案:

我有一个类似的问题。在Windows系统中,使用Python 3.6的pandas.read_csv似乎出现了问题。

Python 3.6将Windows文件系统编码从“ mbcs”更改为“ UTF-8”。参见Python PEP
529
。您可以使用命令sys.getfilesystemencoding()获取当前文件系统编码

我得到两种解决方案:

1.-使用此代码将所有应用更改为与以前的Python <= 3.5编码(“ mbcs”)配合使用

import sys
sys._enablelegacywindowsfsencoding()

2.-将文件指针传递给pandas.read_csv

with open("C:\Users\MyName\Desktop\dumm12\düm1.csv", 'r') as fp:
        dum1 = pd.read_csv(fp, sep = ";", decimal = ",", encoding = "utf-8")

您可以看到此信息:pandas.read_csv无法导入路径中带有重音符号的文件



 类似资料:
  • 问题内容: 我试图编写一个文件名带有特殊字符的文件,例如“téééê.mp3”,但文件名始终保留“?” 我尝试了几种方法来代替字符“é”,但没有找到解决方法: 我也尝试过这种方式。 问题答案: 尝试: 现在,如果这是您的文件系统不支持此类文件名的问题,您将得到一个;。不同于,新的API拒绝创建可能最终无法读取的文件名。 如果确实无法创建路径,那么,您将必须找到某种逃避和撤消逃避的方法。也许写一个别

  • 我在从AWS下载上面的文件时遇到了一些麻烦。我试图用CouldBerry Explore和Java下载这个文件,但失败了。aws文档说我需要特殊的处理。(https://docs.aws.amazon.com/amazons3/latest/dev/usingmetadata.html)那么,你能告诉我如何用“:”下载这个文件吗? 以下是我的文件信息。 文件名:“E:\home\temp\test

  • 问题内容: 我正在为法国客户做一些工作,因此需要处理带重音符号的字符。但是我遇到了很多困难,希望解决方案很简单,并且有人可以向我指出。 字符串: 转换为: 请注意,带重音符号的字符缺失- 在 ê* 后面紧跟着 t ,在 é 后面紧跟着 m 。 * 我尝试使用StringEscapeUtils来成功转义某些字符,例如 ă 。我还构建了自己的转义功能,该功能产生相同的结果( ă 可以工作, ê 不会)

  • 问题内容: 我在编译带有类名特殊字符的源文件时遇到问题。该类文件可以在Eclipse IDE中正常编译,但不能从javac中编译。我认为我需要利用该标志,但尚未达到正确的设置。我将不胜感激任何指针: 档案名称: DeptView和SDO.java Java资料来源: 错误信息: 运行会导致以下错误消息: 更新 我目前正在Windows XP命令提示符下尝试编译 最终,此编译将需要成为ant构建的一

  • 如何在React和JSX中导入名称中带有特殊字符的JS文件? 我可以的 (该文件夹包含moother.js和tomrorrow night.js) 但我不能:

  • 问题内容: 我正在编写一个简单的文件下载servlet,但无法获取正确的文件名。尝试使用URLEncoding和MimeEncoding在现有答案中看到的文件名,但没有一个起作用。 以下代码段中的fileData对象包含mime类型,byte []内容和文件名,它们至少需要ISO-8859-2字符集,而ISO-8859-1不够。 如何使我的浏览器正确显示下载的文件名? 这是文件名的示例:árvíz