我正在尝试使用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-bits:64 操作系统:Windows 操作系统发布:10 机器:AMD64 处理器:Intel64 Family 6 Model 78 Stepping 3,GenuineIntel byteorder:小 LC_ALL:无 LANG:en LOCALE:None.None
熊猫:0.20.1 pytest:3.0.5 点数:9.0.1 setuptools:27.2.0 Cython:没有 numpy:1.11.3 scipy:0.18.1 xarray:没有 IPython:5.2.2 狮身人面像: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:无答案 0 :(得分:3)
我有类似的问题。在Windows系统中,pandas.read_csv与Python 3.6一起出现问题。
Python 3.6从" mbcs"更改Windows文件系统编码to" 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 can't import file with accent mark in path
答案 1 :(得分:1)
我在创建假文件'düm1.csv'时测试了该名称。
我跑的时候:
public static string GetoptionsetText(string entityName, string attributeName, int optionSetValue, IOrganizationService service)
{
string AttributeName = attributeName;
string EntityLogicalName = entityName;
RetrieveEntityRequest retrieveDetails = new RetrieveEntityRequest
{
EntityFilters = EntityFilters.All,
LogicalName = entityName
};
RetrieveEntityResponse retrieveEntityResponseObj = (RetrieveEntityResponse)service.Execute(retrieveDetails);
Microsoft.Xrm.Sdk.Metadata.EntityMetadata metadata = retrieveEntityResponseObj.EntityMetadata;
Microsoft.Xrm.Sdk.Metadata.PicklistAttributeMetadata picklistMetadata = metadata.Attributes.FirstOrDefault(attribute => String.Equals(attribute.LogicalName, attributeName, StringComparison.OrdinalIgnoreCase)) as Microsoft.Xrm.Sdk.Metadata.PicklistAttributeMetadata;
Microsoft.Xrm.Sdk.Metadata.OptionSetMetadata options = picklistMetadata.OptionSet;
IList<OptionMetadata> OptionsList = (from o in options.Options
where o.Value.Value == optionSetValue
select o).ToList();
string optionsetLabel = (OptionsList.First()).Label.UserLocalizedLabel.Label;
return optionsetLabel;
}
我没有OSError,我的Ipython中的文件已打开。
df = pd.read_csv('düm1.csv',sep=';')
您是否尝试过无编码?没有口音?
℃。
答案 2 :(得分:0)
issue至今尚未解决。等到公关。或者尝试使用Python 2.7我想这可能有效