前几日写了一个的批量打包的工具apkpacker,然后便去看了看cocos-console的实现,自然就对Python这一语言产生了兴趣。
但是之前只是学了简单的语法,没有具体深入学习,以至于连一些公共库都不是很熟悉,所以这篇文章就当做初学Python的笔记吧。

看这个公共库的东西嘛,绝逼是要去python.org去看的

subprocess

==传送门==

subprogress是产生子进程的,可以连接到标准输入,标准输出和标准错误管道,并且可以获得返回码。这个模块主要是为了替代以下几个模块:

  • os.system
  • os.spawn*
  • os.popen*
  • popen2.*
  • commands.*

用法

subprocess.call

1
2
3
4
5
6
7
# subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)

# 使用列表作为参数
subprocess.call(["ls", "-l"])

# 使用字符串作为参数,还需指定shell=True
subprocess.call("exit 1", shell=True)

前两个是命令参数,然后标准输入,标准输出,标准错误的制定,最后是表明是否一个终端命令(这个词呢,是我临时起的=。=)
当使用了shell=True这个参数,需要使用一整个字符串,而不是一个表来运行子进程。Python是以这个字符作为参数来运行shell。

文档提示说使用shell=True会有安全隐患。具体慢慢往下看吧。