【问题标题】:Can't open textfile (CSV) in Python 3.3无法在 Python 3.3 中打开文本文件 (CSV)
【发布时间】:2015-04-20 01:20:59
【问题描述】:

我被困住了,我觉得自己很愚蠢。

我有一个包含推文的数据库,我正在使用 .NET 将其导出到 .CSV。我想使用 Pandas 和 NLTK 使用 Python 分析这些数据。但是,我完全停留在第一步,即:“在 Python 中读取 CSV”。这导致了一系列问题:Python open CSV file with supposedly mixed encodings?

如果我是创建文本文件的人,只打开一个文件并打印文本不会那么难吗?

我正在使用下面的C# 代码来生成 CSV 文件(应该是在UTF8?)

使用 (FileStream fs = new FileStream(fullFileName, FileMode.Append, FileAccess.Write)) 使用 (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8))

根据chardet编码为:ISO-8859-2

非常感谢您在正确方向上的一点提示......

【问题讨论】:

  • 您可能想在等待答案时阅读此内容:stackoverflow.com/questions/191359/…
  • 感谢您的评论,但是我已经尝试了一些编码/解码步骤,但它们都产生了不需要的结果。我问这个问题是为了能够避免这些步骤,只需按原样打开文本文件......
  • 您发布的链接还涉及创建一个全新的文件。我想使用我提供的文件...
  • 好的,我设法将文件从ISO-8859-2 转码为UTF8。然而,它再次打破了其他一些字符......然后我尝试ISO-8859-1作为源编码,这似乎有效!。但是,如果没有反复试验,我应该怎么知道呢?
  • 现在我可以将 CSV 打印到屏幕上,但由于编码不正确,Pandas 无法读取文件... aarggg

标签: c# python csv character-encoding


【解决方案1】:

如果编码是 ISO-8859-2,试着告诉 Python 用它打开它。例如。 open('filename', encoding='iso-8859-2').

【讨论】:

  • 我认为编码是 UTF-8 和 Notepad++ 一样。我只说“chardet”说它是iso-8859-2,因为我认为它可能会产生影响......
  • 尝试 ISO-8859-2了吗?如果您不打算使用它,为什么要在您的问题中包含这些信息?
  • 是的,我试过了,还有其他一些编码,如 WINDOWS-1252Unicode(顺便说一句,后者不存在)
  • 无论如何,问题似乎出在输入文件上,而不是 Python 上。查询生成它的 C# 代码可能更有效率。
  • 我贴出了相关的C#代码。它只是将其写入为 UTF8,并且 Notepad++ 将文件标识(并显示)为 UTF8。
猜你喜欢
  • 2018-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-02
  • 2013-11-05
  • 1970-01-01
  • 2021-08-11
相关资源
最近更新 更多