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 基础语法梳理(二)的更多相关文章

  1. Golang 基础之基础语法梳理 (二)

    大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第二章节 Golang 基础之基础语法梳理 (一) Gol ...

  2. python 基础语法梳理

    最近涉及到python的东西比较多,抽一点时间把基础语法规整下. 1.面向对象 #coding=utf-8 def _class_test_01(): s = squire(3,4) print(&q ...

  3. Python基础语法(二)

    类中的方法定义前如果有 @staticmethod 则此方法通过类名调用,如:dict.fromkeys() : 如果没有,则此方法通过对象调用 三元运算 name=值1 if 条件 else 值2  ...

  4. Python基础语法习题二

    习题: 1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex', 'eric', 'rain'] 2.查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有 ...

  5. Python基础语法(三)

    Python基础语法(三) 1. 数值型数据结构 1.1 要点 在之前的博客也有提到,数值型数据结构在这里就不过多介绍了.在这里提及一些需要知道的知识点. int.float.complex.bool ...

  6. Golang 基础之基础语法梳理 (三)

    大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第三章节 Golang 基础之基础语法梳理 (一) Gol ...

  7. Golang 基础之基础语法梳理 (一)

    大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第一章节 Golang 基础之基础语法梳理 (一) Gol ...

  8. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  9. Python的基础语法(二)

    0. 前言 接着上一篇博客的内容,我将继续介绍Python相关的语法.部分篇章可能不只是简单的语法,但是对初学者很有帮助,也建议读懂. 1. 表达式 由数字.符号.括号.变量等组成的组合. 算术表达式 ...

随机推荐

  1. InnoDB页压缩技术

    Ⅰ.想起一个报错 1.1 创建表报错 (root@localhost) [(none)]> create tablespace ger_space add datafile 'ger_space ...

  2. Spring Security-- 验证码功能的实现

    spring security4 添加验证码 http://www.itwendao.com/article/detail/165400.html http://www.itdadao.com/art ...

  3. Eureka源码分析:Eureka不会进行二次Replication的原因

    Eureka不会进行二次同步注册信息 Eureka会将本实例中的注册信息同步到它的peer节点上,这是我们都知道的特性.然而,当peer节点收到同步数据后,并不会将这些信息再同步到它自己的peer节点 ...

  4. 《javascript语言精粹》读书笔记 Item2 对象

    第三章 对象 JavaScript的简单数据类型包括数字.字符串.布尔值(true和false).null值和undefined值.其他 数字.字符串和布尔值"貌似"对象,因为它们 ...

  5. 用 150 行 Python 代码写的量子计算模拟器

    简评:让你更轻松地明白,量子计算机如何遵循线性代数计算的. 这是个 GItHub 项目,可以简单了解一下. qusim.py 是一个多量子位的量子计算机模拟器(玩具?),用 150 行的 python ...

  6. MySQL使用一张表的字段更新另一张表的字段

    转自https://blog.csdn.net/anxpp/article/details/73173274 update table1 t1 left join table2 t2 on t1.ke ...

  7. Go缓存DNS

    Go里面的DNSclient没有带任何的缓存,语言层面没有任何的缓存,但是我们可以通过下面这样的代码来 这样当我们调用http.Client的时候就会采用这个缓存的ip了,里面用到的dnscache是 ...

  8. 在C++中怎么输入反斜杠“ \ ”

    在C++编程中有时就会遇到有些符号不能直接输入,像反斜杠“ \ ",如果直接输入会出现:错误的终止了宏调用的错误. 这时,我们就需要把这些符号转义一下, 例如: CString str = ...

  9. BZOJ_3238_[Ahoi2013]差异_后缀数组+单调栈

    BZOJ_3238_[Ahoi2013]差异_后缀数组+单调栈 Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao ...

  10. 【游戏开发】Excel表格批量转换成lua的转表工具

    一.简介 在上篇博客<[游戏开发]Excel表格批量转换成CSV的小工具> 中,我们介绍了如何将策划提供的Excel表格转换为轻便的CSV文件供开发人员使用.实际在Unity开发中,很多游 ...