Snake's Home

PIL

首先得温习一些命令:

执行系统命令

主流的有4种os.system()、os.popen()、commands.getstatusoutput()、subprocess.Popen()

1
2
3
4
5
6
7
8
9
10
11
os.system() 这种是最简单的,但是只能执行,不能获取返回值
os.popen() 这种能拿到返回值,但是不能拿到返回状态
commands.getstatusoutput() 这种在Windows上会出现兼容性问题,无法执行(亲测),但是在Linux平台上还是挺好用的
subprocess.Popen() 目前我采用的是这种方式,给一个这种方式的demo
import subprocess # 导入subprocess模块
cmd = 'ls -al' # 定义需要执行的cmd
child = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) # 执行系统命令
# child.wait() # 等待系统命令返回后再执行后续命令,看需要可加可不加
(stdoutdata, stderrdata) = child.communicate() # 获取返回数据
print child.returncode # 打印查看命令的returncode
print("stderrdata:%s") % stderrdata # 打印查看

log记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# util.py
#! /usr/bin/env python
# -*- coding:utf-8 -*-

import logging # 导入logging模块

# 创建一个handler,用于写入日志文件
fh = logging.FileHandler('./test.log')

# 再创建一个handler,用于输出到控制台
ch = logging.StreamHandler()

# 定义handler的输出格式formatter
formatter = logging.Formatter('[%(asctime)s][%(filename)s][%(levelname)s]:%(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)

# 创建一个logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
logger.addHandler(fh)
logger.addHandler(ch)

# test.py
import util

util.logger.debug("i am debug")

# console输出
[2016-10-17 11:19:36,999][monkey.py][DEBUG]:i am debug

使用python random模块的choice方法随机选择某个元素

1
foo = ['a', 'b', 'c', 'd', 'e']
from random import choice
print choice(foo)

使用python random模块的sample函数从列表中随机选择一组元素

1
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
slice = random.sample(list, 5)  #从list中随机获取5个元素,作为一个片断返回  
print slice  
print list #原有序列并没有改变。

每次安装PIL出错, 最近找到一篇文章
Mac安装PIL模块

1
sudo easy_install -f http://www.pythonware.com/products/pil/ Imaging

Windows安装PIL