gpt4 book ai didi

python - 是否可以在 python 中为 sys.stdout 设置别名?

转载 作者:太空狗 更新时间:2023-10-29 21:13:30 24 4
gpt4 key购买 nike

考虑这个示例 python 代码。它从 stdin 读取并写入文件。

import sys

arg1 = sys.argv[1]

f = open(arg1,'w')
f.write('<html><head><title></title></head><body>')

for line in sys.stdin:
f.write("<p>")
f.write(line)
f.write("</p>")

f.write("</body></html>")
f.close()

假设我想修改同一个程序,改为写入标准输出。然后,我必须将 f.write() 的每个实例替换为 sys.stdout.write()。但那太乏味了。我想知道是否有办法将 f 指定为 sys.stdout 的别名,以便 f.write() 被处理作为 sys.stdout.write()

最佳答案

Python 中的名称只是绑定(bind)。因此:

f = sys.stdout

只需将名称f 绑定(bind)到对象也将绑定(bind)到sys.stdout...

请注意,由于它们都是同一个对象,此时您对 fsys.stdout 所做的任何更改都会影响两者... 所以不要执行 f.close() 因为您通常不想执行 sys.stdout.close()...

关于python - 是否可以在 python 中为 sys.stdout 设置别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17818502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com