查看python官方文档:最全
p = subprocess.Popen([r'png2bdf.exe',[r'-o .\tst\myfont.bdf -f myfont -e 65 tst\*.png']],stdout=subprocess.PIPE,stderr = subprocess.PIPE)
out,err = p.communicate()
print(out)
注意,如何将shell命令分解为参数序列可能并不明显,特别是在复杂情况下。shlex.split()可以说明如何确定参数的正确令牌化:
>>>
>>> import shlex, subprocess
>>> command_line = input()
/bin/vikings -input eggs.txt -output "spam spam.txt" -cmd "echo '$MONEY'"
>>> args = shlex.split(command_line)
>>> print(args)
['/bin/vikings', '-input', 'eggs.txt', '-output', 'spam spam.txt', '-cmd', "echo '$MONEY'"]
>>> p = subprocess.Popen(args) # Success!
特别注意,shell中以空格分隔的选项(如-input)和参数(如 eggs.txt)属于单独的列表元素,而在shell中使用时需要引用或反斜杠转义的参数(如包含空格的文件名或上面显示的回声命令)是单个列表元素。
for i in range(5):
sys.stdout.write('Processing {}\n'.format(i))
sys.stdout.flush()
time.sleep(1)
for i in range(5):
sys.stderr.write('Error {}\n'.format(i))
sys.stderr.flush()
time.sleep(1)
在Python中,百分号(%)有多种用途,主要涉及到以下几个方面:
-
格式化字符串:百分号可以用来格式化字符串,使用
%
操作符可以将变量插入到字符串中。这是传统的字符串格式化方法,例如:name = "Alice"age = 30print("My name is %s and I am %d years old." % (name, age))