我正在寻求运行需要一些时间才能运行的 python 脚本的帮助。
这是一个长期运行的过程,每次测试观察大约需要 2 小时。例如,这些观察结果可能是美国的 50 个州。
我不想整天照顾这个过程 - 我想启动它然后下类开车回家 - 或者让它在我 sleep 时运行。
由于这是一个循环 - 我需要调用一个 python 脚本来循环遍历我的代码,遍历 50 个状态中的每一个 - 以及第二个运行我的实际代码来执行操作的代码。
我听说过 NOHUP,但我的知识非常有限。我看到 nohup ipython mypython.py 但当我谷歌时,我得到很多其他人用其他方法插话,所以我不知道像我这样的人的理想方法是什么。此外,我本质上希望将其作为循环运行 - 所以不知道这会让事情变得复杂。
请给我一些简单易懂的东西。我不太了解 Linux,否则我不会问,因为这似乎是一种常见的命令/事件......
我的代码的基本示例:
两个文件:code_file.py和loop_file.py
Code_file.py 完成所有工作。循环文件只是传递要运行的内容的列表。
code_file.py
output = each_state + ' needs some help!'
print output
loop_file.py
states = ['AL','CO','CA','NY','VA','TX']
for each_state in states:
code_file.py
关于循环 - 我还听说我无法通过 nohup 传递参数或其他内容?我可以在我的 python 代码中修复此部分......例如,从我的代码中读取 CSV 并从该 CSV 文件中删除当前记录,然后重新写出......这样我就可以始终为我的循环选择 CSV 文件中的顶部记录(状态列表)
最佳答案
也许你可以像这样修改你的loop_file.py:
import os
states = ['AL','CO','CA','NY','VA','TX']
for each_state in states:
os.system("python /dir_of_your_code/code_file.py")
然后在 shell 中,您可以运行loop_file.py:
nohup python Loop_file.py &
# & 不是必需的,它只是将文件的所有输出重定向到名为 nohup.out 的文件,而不是将其打印在屏幕上。
关于linux - 使用 nohup 在与 ssh 断开连接时帮助运行 python 代码循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46354889/