要实现在shell窗口中编写print语句但不向屏幕输出,可以使用sys库中的stdout流来完成。
具体步骤如下:
- 导入sys库:
python
import sys
- 将sys.stdout流保存到一个变量中,然后重定向输出流:
python
save_stdout = sys.stdout
sys.stdout = open('output.txt', 'w')
这里将输出流重定向到一个文件output.txt中,'w'表示写入模式。那么在后续的print语句中都不会再向屏幕输出,而是将结果写入到文件中。
- 执行完需要输出的内容后,将输出流恢复到原来的状态:
python
sys.stdout = save_stdout
这一步非常重要,否则在后续的操作中仍会向文件中写入结果。
以下是两个示例:
示例一:将列表中的元素写入文件,但不向屏幕输出
import sys
# 初始化一个列表
my_list = ['apple', 'orange', 'banana']
# 保存输出流
save_stdout = sys.stdout
# 将输出流重定向到文件中
sys.stdout = open('output.txt', 'w')
# 使用循环将列表内容输出到文件
for item in my_list:
print(item)
# 恢复输出流
sys.stdout = save_stdout
执行完毕后,当前目录下会生成一个文件output.txt,其中包含了列表中的元素。
示例二:运行时将print语句的输出写入文件
import sys
# 初始化一个变量
my_var = 'hello, world'
# 保存输出流
save_stdout = sys.stdout
# 将输出流重定向到文件中
sys.stdout = open('output.txt', 'w')
# 执行一个print语句并将结果输出到文件中
print(my_var)
# 恢复输出流
sys.stdout = save_stdout
当该程序执行时,print语句的结果不会显示在屏幕上,而会写入到文件output.txt中。
这就是将print语句输出重定向到文件的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 实现在shell窗口中编写print不向屏幕输出 - Python技术站