什么可能导致python脚本循环?

时间:2017-07-22 22:48:31

标签: python python-3.x

好吧,我在这里是事实。我有2个python脚本,我希望Script1触发Script2。我尝试了以下方法来做到这一点:

from subprocess import call call(["python3", "script2.py"])

可怕的执行电话:

exec(open("script2.py").read())

最后:

os.system("script2.py 1")

所以只是为了确保我能为您提供所需的所有信息。我想首先运行script1然后一旦完成处理我想让script1触发script2。目前无论我尝试过什么,我都陷入了一个循环,其中一个脚本只是一次又一次地运行。

有什么想法吗?

以下是script1的实际代码:

import os

"""This looks like it is unnecessary but I can't include its context 
in this post. Just know it has an actual purpose."""
input_file = "gs://link_to_audio_file.m4a"

audio = input_file
output_format = os.path.basename(input_file).replace("m4a", "flac")

os.system('ffmpeg -i %s -ar 16000 -ac 1 %s' % (audio,output_format))


os.system("python3 script2.py")

3 个答案:

答案 0 :(得分:1)

通过注释掉对第二个脚本的调用,确保第一个脚本自行运行。如果它似乎仍然永远存在,那么除了尝试调用第二个脚本之外,还有一个问题。如果您有IDE,则可以单步执行代码以发现它挂起的位置。如果您不使用IDE,请在脚本中放置print语句,以便查看执行路径。你可能有一个循环呼叫吗?所以第一个python脚本调用第二个,第二个python脚本又调用第一个?

答案 1 :(得分:0)

使用os.system时,我相信您需要在

中包含python
os.system("python script2.py 1")

我无法告诉您为什么在没有看到脚本的情况下进入循环。

答案 2 :(得分:0)

我终于解决了这个问题!我实际上是在第二个脚本中使用import语句,该脚本试图从第一个脚本导入变量,而是导入整个脚本,导致它在无限循环中运行。就像LAS建议的那样,做得很好!谢谢大家对此的所有帮助!