我无法在读取模式下打开html文件以在其源代码中搜索字符串匹配。
fo = open("htm1.html", "r");
str = fo.read(10);
print("Read String is : ", str);
fo.close();
这不起作用。我收到了以下错误:
Traceback (most recent call last):
File "C:/Python33/myProjects/malCode.py", line 34, in <module>
str = fo.read(10);
File "C:\Python33\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 6040: character maps to <undefined>
答案 0 :(得分:0)
如果您未指定编码,open()
will use locale.getpreferredencoding()
;在您的情况下cp1252
。这是一个问题,因为HTML文件采用了一种不同的,尚未确定的编码。碰巧使用了哪种编码是一件好事。如果做不到这一点,您可以使用'utf-8'
或'latin-1'.
等常见编码来解决这个问题。例如:
with open("htm1.html", "r", encoding="utf-8") as fo:
sample = fo.read(10)
(次要语法注释:不需要以行结尾的分号。)