我在文件夹中保留了大量文件。
现在我想阅读所有这些内容。
它们具有不同的格式和不同的编码。
使用listdir/glob.glob
我可以找到列表但是
如何open/read
或处理它们以进行不同的编码?
如果有人可以帮助我。我在Windows上使用Python3.2。
此致 Subhabrata Banerjee。
答案 0 :(得分:2)
假设您知道哪些文件在哪种编码中,请使用codecs.open()。它的工作方式几乎与常规open()完全相同,但它采用可选的编码参数。
如果您不知道哪些文件在哪种编码中,则更难。您可以尝试使用chardet或this 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
模块的工作原理。