【问题标题】:Exit interactive prompt inside script and move to next line退出脚本内的交互式提示并移至下一行
【发布时间】:2021-01-29 17:01:16
【问题描述】:
嘿,我正在尝试将交互式命令的输出打印到 python 脚本内的文件中,然后转到下一行。
我不确定如何实现这一点。我试过了:
os.system("mnamer foo.mkv > mnamer.txt")
仅供参考,可以使用“mnamer”从脚本内部导入和调用 mnamer
上述命令将我需要的信息记录在一个文件中,但我需要它通过提示符并读取下一行代码。
有没有特定于 python 的方法?
【问题讨论】:
标签:
python-3.x
interactive-shell
【解决方案1】:
如果您可以将 mnamer 作为 python 模块导入,请这样做,以这种方式使用它,并通过临时将 sys.stdout 和 sys.stderr 分配给文件来将其输出记录到文件中:
import mnamer
import sys
logfile = open("/path/to/log/file.txt", "w") # open the logfile
stdout, stderr = sys.stdout, sys.stderr # make copies of these to be able to restore them after the mnamer commands
sys.stdout = logfile # assign stdout to logfile, infos will be written there
sys.stderr = logfile # assign stderr to logfile, errors will be written there too
# put your mnamer commands here
mnamer.some_method_of_mnamer_module()
sys.stdout = stdout # restore stdout so that further infos will be printed to terminal again
sys.stderr = stderr # restore stderr so that further errors will be printed in terminal again
logfile.close() # close the logfile