2012-02-01 247 views
3

如何自动运行3个python脚本。假设,我有3个脚本说a.py,b.py和c.py.如何自动运行python脚本

这里a.py运行一个web爬虫并将其保存为一个xml文件。现在b.py解析生成的xml文件并保存为pickle文件。现在c.py将pickle文件中的列表插入到数据库中。

有没有办法让这个自动化?

+1

你在什么操作系统上?另外,你是什么意思的自动化?你想让他们按照固定的时间表运行或响应某些事件吗? – Bill 2012-02-01 05:44:26

+0

我正在使用ubuntu 11.10,通过自动化我的意思是说,我希望这3个脚本每2-3小时运行一次。 – 2012-02-01 05:46:44

回答

6

只是做一个外壳脚本,其确实

python a.py && python b.py && python c.py

在bash的&&为链接命令连续地,例如这里b.py只有在a.py成功完成(即返回0)时才会执行。

将它保存在一个没有扩展名的文件(有些版本的cron不会使用.sh文件,我发现这出长和令人沮丧的样子),然后使用crontab -e把那个shell脚本的位置,在你的cron表。有关superuser关于如何安排cron作业的信息很多,所以我建议在那里搜索这些信息,而不是SO(这更多关于编程)。

+0

'*/2 * * * */home/ching/Desktop/scraper/scrap' im使用此脚本每2分钟在crontab中运行我的脚本。但我没有看到任何生成的XML文件。这有什么不对吗? – 2012-02-01 09:58:51

+0

它工作时,我手动尝试运行它 – 2012-02-01 10:01:52

+0

你有'chmod + x'的脚本?你可以使用'run-parts --test'来检查哪个cron会运行 – wim 2012-02-01 10:59:27

0

编写一个包装python脚本,导入a,b和c,然后依次运行(包含错误检查,通知和记帐)。然后使用系统cron守护进程安排这个包装(如果在UNIX上)。