从ipython运行python程序

时间:2016-05-10 14:22:17

标签: python ipython

我试图从ipython笔记本运行python程序。如果在命令下方运行,则有效。

run twitterstream.py >> output.txt 

但是,如果使用while循环运行则失败。我不知道为什么会失败?

import time
t_end = time.time() + 60 * 3
while time.time() < t_end:
    print ('entered')
    run twitterstream.py >> output.txt 

语法错误:

File "<ipython-input-28-842e0185b3a8>", line 5
    run twitterstream.py >> output.txt
                    ^
SyntaxError: invalid syntax

2 个答案:

答案 0 :(得分:1)

您的while语句结构合理。虽然它会打印&#34;输入&#34;尽可能多次,直到180秒(很多次),并且它也会尝试以相同的方式调用您的脚本。你可能会更好地服务,只需每1,5,10一次调用你的脚本,或任何秒数,因为没有必要不断调用它。

正如Tadhg McDonald-Jensen使用%run所指出的,你可以调用你的脚本。此外,对于您必须考虑的here调用Twitter的速率也有限制。基本上每15分钟15次或每15分钟180次,但我不确定这适用于哪里。

假设每15分钟15个最坏的情况,您可以在三分钟的窗口中运行15个电话。所以你可以这样做:

from math import floor

temp = floor(time.time())
    while time.time() < t_end:
        if floor(time.time()) == temp + 12:
            %run twitterstream.py >> output.txt
        temp = floor(time.time())

这将每隔12秒调用一次脚本。

答案 1 :(得分:1)

the run "magic command"不是有效的python代码或语法。

如果您想使用代码中的魔术命令,则需要参考How to run an IPython magic from a script (or timing a Python script)