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. 表达式 由数字.符号.括号.变量等组成的组合. 算术表达式 ...
随机推荐
- 修复lvm的逻辑卷
一.背景 公司传统的服务器不知道什么朝代的朝臣用lvm分区,1T的硬盘分了50G挂载到根目录"/"里面有/var./usr--,剩下的挂载到了"/home"目录 ...
- Navicat PatchNavicat
Navicat for MySQL 11.0.10 32+64位(内含破解补丁)\64位 安装完成后,退出Navicat 执行PatchNavicat.exe,提示patch完成后,Navicat即可 ...
- 你不知道的JavaScript--Item15 prototype原型和原型链详解
用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了, ...
- Python爬虫利器四之PhantomJS的用法
前言 大家有没有发现之前我们写的爬虫都有一个共性,就是只能爬取单纯的html代码,如果页面是JS渲染的该怎么办呢?如果我们单纯去分析一个个后台的请求,手动去摸索JS渲染的到的一些结果,那简直没天理了. ...
- js判断对象是否为空
/** *判断对象是否为空 * * @param e * @returns {Number} */function isEmptyObject(e) { var t; for (t in e) ret ...
- Java 学习笔记 (六) Java 定义变量
这个问题来自于head first一书page68. package com.idea.study; public class Books { //headfirst page68 String ti ...
- compact_op.go
package clientv3 import ( pb "github.com/coreos/etcd/etcdserver/etcdserverpb" ) // Com ...
- BZOJ4944 泳池 解题报告
题目描述 有一个 \(n\) 行无穷列的海域,每个格子有 \(q\) 的概率安全, \(1-q\) 的概率不安全.从中框出一个面积最大的矩形,满足以下两个条件: (1)矩形内的格子均安全: (2)矩形 ...
- Dashboard二次开发简明教程
Horizon简介 Horizon是OpenStack的一个子项目,用于提供一个Web前端控制台(称为Dashboard),以此来展示OpenStack的功能.通常情况下,我们都是从Horizon.D ...
- 【Canal源码分析】Canal Instance启动和停止
一.序列图 1.1 启动 1.2 停止 二.源码分析 2.1 启动 这部分代码其实在ServerRunningMonitor的start()方法中.针对不同的destination,启动不同的Cana ...