首页 > 解决方案 > 为什么 call() 之后的其余代码不起作用?

问题描述

我希望能够将输入和输出——只是我在终端上看到的所有内容——存储在一个文件中。我必须在脚本中执行此操作,而不是作为终端中的命令。我尝试在脚本的开头和结尾使用 call() 来做到这一点,如下所示:

from subprocess import call
call(["script", "session.log"])

belong = raw_input("Random input getter no.1 ")
take = raw_input("Input getter no.2")
def ok():
    print "OK"

def place():
    print "PLACE"

def hope():
    print "HOPE"
if belong != 'mcr':
    ok()

if take != 'mcrr':
    place()
    hope()

print "random words"
print "more words"


call(["exit"])

请忽略无意义的短语,我创建这些短语只是为了让 .log 文件中包含一些内容。

当我运行它时会发生什么,此消息出现在终端上:

脚本启动,文件为 session.log

而已。我应该被提示输入,对吧?然后我输入:

出口

在终端上,然后出现了:

出口

脚本完成,文件为 session.log

随机输入吸气剂 1 号

只有在终端上键入“exit”后,其余代码才能真正起作用。我希望先创建 .log 文件,然后运行整个代码,然后退出。

标签: pythonloggingsubprocess

解决方案


推荐阅读