我试图从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
答案 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)