繁体   English   中英

将多个参数传递给sys.stdout.write

[英]pass multiple argument to sys.stdout.write

是否可以将多个参数传递给sys.stdout.write 我看到的所有示例都使用一个参数。

以下陈述不正确。

sys.stdout.write("\r%d of %d" % read num_lines)
Syntax Error: sys.stdout.write

sys.stdout.write("\r%d of %d" % read, num_lines)
not enough arguments for format string

sys.stdout.write("\r%d of %d" % read, %num_lines)
Syntax Error: sys.stdout.write

sys.stdout.write("\r%d of %d" % read, num_lines)
not enough arguments for format string

我该怎么办?

您需要将变量放在元组中:

>>> read=1
>>> num_lines=5
>>> sys.stdout.write("\r%d of %d" % (read,num_lines))
1 of 5>>> 

或者使用str.format()方法:

>>> sys.stdout.write("\r{} of {}".format(read,num_lines))
1 of 5

如果您的参数在iterable中,则可以使用解包操作将它们传递给string的format()属性。

In [18]: vars = [1, 2, 3]
In [19]: sys.stdout.write("{}-{}-{}".format(*vars))
1-2-3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM