gpt4 book ai didi

python - 是否可以通过Python中的常规打开/写入来访问stdout

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:07 26 4
gpt4 key购买 nike

我正在尝试创建一个 scipr,它可以在标准输出或文件中进行写入。是否可以通过相同的代码片段写入每个文件,而不是使用 stdou 的 print 和文件的 io.write() ?

两者的示例:

out_file = open("test.txt", "wt")
out_file.write("Text")
out_file.close()

print("Text", file=sys.stdout)

最佳答案

这是你想要的吗?

from __future__ import print_function, with_statement
def my_print(text, output):
if type(output) == str:
with open(output, 'w') as output_file:
print(text, file=output_file)
elif type(output) == file:
print(text, file=output)
else:
raise IOError

我想我明白了,也许是这样:

from __future__ import print_function, with_statement
def my_print(text, output):
if type(output) == str:
try:
output_file = eval(output)
assert type(output_file) == file
except (NameError, AssertionError):
output_file = open(output, 'w')
print(text, file=output_file)
output_file.close()
elif type(output) == file:
print(text, file=output)
else:
raise IOError

有了这个,您可以将字符串“sys.stdout”传递给函数,它会首先尝试将其作为文件(来自系统或之前打开的文件),如果它引发 NameError,则会将其作为新文件打开

关于python - 是否可以通过Python中的常规打开/写入来访问stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850587/

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