本示例为WTCLAB技术团队工程开发成员而作。为公开性技术文档作简单示例。
本例要求的关键技术是:
引入time包,以time.sleep方法控制定时。
【例】
import time #引入time包
i=0
while True:
time.sleep(0.5) #设置定时为0.5秒
i=i+1
print("main running turns = "+str(i)) #每0.5秒打印输出一次
if i>=10:
break
print("finished") #打印到10次后结束,打出finished
程序执行后将每隔0.5秒打印出循环内输出字串,10次后结束。以下是在Anaconda 3下Spyder集成开发环境中的执行结果。
输出结果如下:
main running turns = 1
main running turns = 2
main running turns = 3
main running turns = 4
main running turns = 5
main running turns = 6
main running turns = 7
main running turns = 8
main running turns = 9
main running turns = 10
finished
Python命令行参数传递很简单,直接上实验代码(chuanzhi.py)。
# chuanzhi.py
import sys
print(sys.argv[0]) #打印首参数(即文件名)
print(sys.argv[1]) #打印参数1
print(sys.argv[2]) #打印参数1
在windows控制台执行
C:> python chuanzhi.py abc 1234
结果是
C:> python chuanzhi.py abc 1234
chuanzhi.py
abc
1234
可见,Python用sys包来实现命令行传值。sys.argv[ ]依次获取包括执行程序文件名本身在内的参数字串。这样sys.argv [ 1 ] 就是字符串abc, sys.argv[ 2 ]就是字符串1234。而sys.argv [0]中则是文件名chuanzhi.py。
引入os包,用其中的os.system(“命令行”)方法,例如:
os.system(sys.argv[1])
将执行sys.argv1所引入的命令行。
屏幕截图需要 ImageGrab的支持,具体方法是:
1、引入 ImageGrab
from PIL import ImageGrab
2、使用 ImageGrab的方法。 ImageGrab的方法有以下两个:
一、grab方法
函数原型
PIL.ImageGrab.grab(bbox=None)
用以截取屏幕bbox范围内的图片,默认截取全屏,例如:
ImageGrab.grab().show() #截取全屏并显示
ImageGrab.grab((0,0,100,100)).show()#截取左上角100px正方形
二、grabclipboard方法
函数原型
PIL.ImageGrab.grabclipboard()
用以获取剪切板内的图片
三、show方法
ImageGrab.grabclipboard().show()#获取剪切板内图片并显示
ImageGrab.grab().show() #截取全屏并显示
四、save方法
ImageGrab.save(filename)
其中filename字串这文件名(含扩展名),并由扩展名决定俣存图片的格式,如png,jpg等等。
综合上述定时器、截屏、参数传递的基本使用方法,我们编写了试验测试程序如下。其中:
doTimer.py为主程序。
screen.py为被主程序调用的截屏程序。
doTimer.py代码:
## doTimer.py
import time,sys,os
while True:
os.system(sys.argv[1])
time.sleep(3) #每3秒启动一次
print("main running")
screen.py代码
## screen.py
from PIL import ImageGrab #引入截图处理包
import time
im = ImageGrab.grab() #截屏
filename=str(time.time()) #生成基于时间字串的文件名前缀
im.save(filename+'sybscreen.jpg') #保存截图为jpg文件
print( "screen... ctrl+C to break") #打印操作过程和提示
在Windows下调用格式为:
python doTimer.py “python screen.py”
有很多工具软件可以对屏幕作动态记录并生成gif格式的动画文件。这里我用的是LICEcap,LICEcap是一款屏幕录制工具,支持导出 GIF 动画图片格式,轻量级、使用简单,录制过程中可以随意改变录屏范围。
(LICEcap下载参见腾讯 https://pc.qq.com/detail/0/detail_22760.html 或官网 http://www.cockos.com/licecap/)。
在Windows控制台执行
python doTimer.py “python screen.py”
可看到在默认文件夹下每3秒钟新产生一个新的jpg格式的截图文件。用LICEcap记录的动画如图。
最后以
Ctrl+C
来中断程序执行。
本例代码及文档的下载链接是:(建议使用百度网盘加密链接)
https://pan.baidu.com/s/129FheGJ1alYdlA3USj40RA
密码:dflq
以上演示了程序操作文档的写法。MARKDOWN编辑器使用很简单,其在文档格式化、数学公式编辑、流程图应用上功能比微软的WORD好很多。以下附录是CSDN自带的关于MARKDOWN编辑器的示例和说明。
这里写入本文涉及的文献。
【1】 Anaconda下载: https://www.anaconda.com/download/
【2】spyder编辑器:http://pythonhosted.org/spyder/
【3】昆明理工大学无线通信团队:http://www.wtclab.net/
【4】清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/
【5】Markdown 语法说明:http://wowubuntu.com/markdown/index.html
本附录是CSDN自带的关于MARKDOWN编辑器的示例和说明。
本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:
Ctrl + B
Ctrl + I
Ctrl + Q
Ctrl + L
Ctrl + K
Ctrl + G
Ctrl + H
Ctrl + O
Ctrl + U
Ctrl + R
Ctrl + Z
Ctrl + Y
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]
使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。
本编辑器支持 Markdown Extra , 扩展了很多好用的功能。具体请参考Github.
Markdown Extra 表格语法:
项目 | 价格 |
---|---|
Computer | $1600 |
Phone | $12 |
Pipe | $1 |
可以使用冒号来定义对齐方式:
项目 | 价格 | 数量 |
---|---|---|
Computer | 1600 元 | 5 |
Phone | 12 元 | 12 |
Pipe | 1 元 | 234 |
定义 D
定义D内容
代码块语法遵循标准markdown代码,例如:
@requires_authorization
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
>>> message = '''interpreter
... prompt'''
生成一个脚注1.
用 [TOC]
来生成目录:
使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.
更多LaTex语法请参考 这儿.
可以渲染序列图:
或者流程图:
即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.csdn.net/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。
用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。
博客发表后,本地缓存将被删除。
用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。
注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱。