在Python Different Encoding上打开多个文件

时间:2012-07-10 17:03:15

标签: python python-3.x python-2.7

我在文件夹中保留了大量文件。 现在我想阅读所有这些内容。 它们具有不同的格式和不同的编码。 使用listdir/glob.glob我可以找到列表但是 如何open/read或处理它们以进行不同的编码?

如果有人可以帮助我。我在Windows上使用Python3.2。

此致 Subhabrata Banerjee。

3 个答案:

答案 0 :(得分:2)

假设您知道哪些文件在哪种编码中,请使用codecs.open()。它的工作方式几乎与常规open()完全相同,但它采用可选的编码参数。

如果您不知道哪些文件在哪种编码中,则更难。您可以尝试使用chardetthis question

的其他答案

答案 1 :(得分:1)

open(fp)是在python中打开文件的标准方法,请参阅:http://docs.python.org/library/functions.html#open

一旦打开,您可以按http://docs.python.org/library/stdtypes.html#bltin-file-objects

指定的.read()读取该文件

编码会变得更加棘手,并且将基于您如何知道每个文件使用的编码

答案 2 :(得分:0)

作为Jeremiah wrote(for),codecs.open()为Python 2做了现代化open()对Python 3的作用。encoding参数说明文件中使用了什么编码。

然而,重要区别是如果使用codecs.open(),那么读取行是unicode字符串(并且要写入的行应该是unicode字符串),而不是普通的字符串字符串(即字节序列)。它在Python 3中更自然,但也可以用Python 2这样做。

我建议阅读Mark Pilgrim的 Dive Into Python 3 Chapter 4. Strings

他的Chapter 15. Case Study: Porting chardet to Python 3解释了上述chardet模块的工作原理。