摘要:出现乱码的原因是,网页服务端有bug,它硬性使用使用某种特定的编码方案,而并没有按照客户端的请求头的编码要求来发送编码。解决方案:使用chardet来猜测网页编码。1.去chardet官网下载chardet的py源码包。2.把chardet目录从源码包里解压到项目文件夹内。3.通过 import chardet 来引用它,然后: 1 response = None 2 #尝试下载网页 3 try: 4 response = urllib2.urlopen("http://www.baidu.com") 5 except Exception as e: 6 print &qu
阅读全文
摘要:1 import time 2 import datetime 3 4 class TimeX: 5 '''时间工具,目前用于格式化时间''' 6 7 @staticmethod 8 def GetLocalTimeString_Time(arg_time=time.time()): 9 '''返回【年-月-日 时:分:秒】格式。如果没有参数,则默认为当前时间'''10 return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(a
阅读全文
摘要:情况:文件乱码,在cmd上输出print也乱码。解决方案:统一为gbk的简体中文编码方式。步骤如下:1.每个py文件使用【简体中文(GB2312)- 代码页 936】格式保存,行尾为【Windows(CR LF)】:或者是【ANSI】:或者是【ANSI/ASCII】:这三种都一样。注意,VS里只有gb2312的选项,但实际上windows已经把代码页936统一为gbk,而且gbk兼容gb2312,因此VS里保存为gb2312是没有问题的。2.每一个文件的开头,添加一行:1 # -*- coding: gbk -*-如:
阅读全文
摘要:首先说一个发现:1 try:2 抛错误,抛异常3 except Exception as e:4 都被这里抓住了5 except Error as e:6 这里啥事都没了然后,说说Exception as e的e。e可谓是格式五花八门。比如:再比如:这么不严谨的格式,实在没办法直接从e.Name或e.Message等之类的主流方式来一步到位地抓出ErrorTitle与ErrorDetail。那怎么办呢?进行了各种尝试后,发现个好方法:str(type(e)) 可以抓出Title,而且还包含Type。而str(e)则可以抓出Detail。因此,诞生了格式化工具:Excep...
阅读全文
摘要:1 import os; 2 import sys; 3 #---------------------------------------------- 4 def main( ) : 5 try : 6 a = 1 / 0; 7 print("如果运行到这里则说明没有错误。"); 8 except : 9 错误标题 = str( sys.exc_info()[0] );10 错误细节 = str( sys.exc_info() );...
阅读全文