python 基础语法梳理(二)
1、gevent使用
# -*- coding: utf-8 -*- import gevent
import platform from gevent import subprocess def _test_shell(script): excute_data=[];
err_data=[]; if platform.system() == "Windows": popen = subprocess.Popen(script, \
shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) excute_data = popen.stdout.readlines() err_data = popen.stderr.readlines() for msg_line in excute_data:
print "return: %s" %(msg_line.strip()) for err_line in err_data:
print "err:%s" %(err_line.strip()) def talk(msg):
print(msg) def _test_spwan(): gevent.spawn(talk,"Fredirc") if __name__ == '__main__': _test_shell('java -version') _test_spwan() gevent.sleep(0.5) #上面例子打印输出
#err:java version "1.6.0_37"
#err:Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
#err:Java HotSpot(TM) Client VM (build 20.12-b01, mixed mode, sharing)
#Fredirc
2、logging使用
import logging
import os
from logging import FileHandler def get_logger():
logger = logging.getLogger('fredric_file')
log_format = '%(asctime)s %(filename)s %(lineno)d %(levelname)s %(message)s'
formatter = logging.Formatter(log_format)
logfile = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'log', 'fredric_log.log')
handler = FileHandler(logfile, "a")
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.ERROR)
return logger def get_logger_console():
logger = logging.getLogger("fredric_console")
log_format = '%(asctime)s %(filename)s %(lineno)d %(levelname)s %(message)s'
formatter = logging.Formatter(log_format)
console = logging.StreamHandler()
console.setFormatter(formatter)
logger.addHandler(console)
logger.setLevel(logging.DEBUG)
return logger logger_file = get_logger()
logger_console = get_logger_console() if __name__ == '__main__': logger_file.error("fiel error")
logger_console.error("console error") logger_file.info("fiel error")
logger_console.info("console error")
3、imp使用(类似JAVA反射)
# -*- coding: utf-8 -*- import imp if __name__ == '__main__': #获取这个模块
module = imp.load_module("Test", *imp.find_module("test", ["./"])) #实例化这个模块中的类
temp=module.__getattribute__("Test")(); #执行类包含的方法
temp.do_staff() #打印:do_staff: Test Class print temp.__str__() #打印:to_string:Test Class
python 基础语法梳理(二)的更多相关文章
- Golang 基础之基础语法梳理 (二)
大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第二章节 Golang 基础之基础语法梳理 (一) Gol ...
- python 基础语法梳理
最近涉及到python的东西比较多,抽一点时间把基础语法规整下. 1.面向对象 #coding=utf-8 def _class_test_01(): s = squire(3,4) print(&q ...
- Python基础语法(二)
类中的方法定义前如果有 @staticmethod 则此方法通过类名调用,如:dict.fromkeys() : 如果没有,则此方法通过对象调用 三元运算 name=值1 if 条件 else 值2 ...
- Python基础语法习题二
习题: 1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex', 'eric', 'rain'] 2.查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有 ...
- Python基础语法(三)
Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...
- Golang 基础之基础语法梳理 (三)
大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第三章节 Golang 基础之基础语法梳理 (一) Gol ...
- Golang 基础之基础语法梳理 (一)
大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第一章节 Golang 基础之基础语法梳理 (一) Gol ...
- Python 基础语法(二)
Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...
- Python的基础语法(二)
0. 前言 接着上一篇博客的内容,我将继续介绍Python相关的语法.部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂. 1. 表达式 由数字.符号.括号.变量等组成的组合. 算术表达式 ...
随机推荐
- swap分析及其使用
什么是swap swap主要是在内存不够用的时候,将部分内存上的数据交换到swap空间上,以便让系统不会因为内存不够用而导致oom或者更致命的情况出现.当内存使用存在压力的时候,开始触发内存回收行为, ...
- 阿里云部署java项目参考如下链接
http://www.cnblogs.com/softidea/p/5271746.html https://oneinstack.com/question/how-to-deploy-java-ap ...
- web页面中http返回的状态码解释
状态码类别: 1xx: 信息类,表示客户发送的请求服务端正在处理 2xx:成功类,服务器 成功接收请求 3xx:重定向类,服务器中找到了多个请求内容,则需要用户再次操作选择 4xx:客 ...
- 一支烟的时间导致他错失女神,Python查看撤回消息,力挽狂澜!
2011年1月21日 微信(WeChat) 是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序,由张小龙所带领的腾讯广州研发中心产品团队打造 .在互联网飞速发展的下.民 ...
- 【莫比乌斯反演】BZOJ2154 Crash的数字表格
Description 求sigma lcm(x,y),x<=n,y<=m.n,m<=1e7. Solution lcm没有什么直接做的好方法,用lcm=x*y/gcd转成gcd来做 ...
- POJ_2318_TOYS&&POJ_2398_Toy Storage_二分+判断直线和点的位置关系
POJ_2318_TOYS&&POJ_2398_Toy Storage_二分+判断直线和点的位置 Description Calculate the number of toys th ...
- BZOJ_1826_[JSOI2010]缓存交换 _线段树+贪心
BZOJ_1826_[JSOI2010]缓存交换 _线段树+贪心 Description 在计算机中,CPU只能和高速缓存Cache直接交换数据.当所需的内存单元不在Cache中时,则需要从主存里把数 ...
- 阿里巴巴Java开发程序猿年薪40W是什么水平?
对于年薪40万的程序员,不只是技术过硬,还有一个原因是他们所在的公司福利高,或者会直接持股.在BAT中就是一个很好的案例,例如阿里巴巴P7,P8级别的员工不仅是年薪30到80万不等,还有更多股票持有. ...
- java可用与串口通信的一些库
java原生对串口的支持只有javax.comm,javax.comm比较老了,而且不支持64位系统,我在看jlibmodbus(一个java实现的modbus协议栈)的时候发现了几个可供使用的jav ...
- ELK入门使用-与springboot集成
前言 ELK官方的中文文档写的已经挺好了,为啥还要记录本文?因为我发现,我如果不写下来,过几天就忘记了,而再次捡起来必然还要经历资料查找筛选测试的过程.虽然这个过程很有意义,但并不总是有那么多时间去做 ...