如何安排和自动化python脚本

时间:2017-03-10 11:18:26

标签: python

我在python开发方面相当绿色但不过学习。 我写了一些python代码,但它们大多是一次性使用,并在命令行运行。我仍然不知道如何自动化和安排我的代码。让我们说:

  1. 编写了一个python脚本,从API中提取一些CSV数据并将其保存在/tmp中。
  2. 编写了另一个脚本来摄取csv数据并将其转换为每行XML。
  3. 每次我想这样做,我发现自己在做:

    $ python getdata.py 
    $ python converttoxml.py
    

    在shell中,我认为可以编写一个包装脚本和cron。对?如果是这样,在python世界中如何完成?请记住,我们必须包括所有使用的python libraries/模块。

    P.S。使用PyCharm在Linux环境中开发。

2 个答案:

答案 0 :(得分:1)

使用crontab -e

登录cron

按照以下格式添加一行,滚动到底部: m h dom mon dow command,即分钟,小时,日期,星期几,命令

所以,如果你想在每小时运行你的命令

* /1 * * * * python path/to/file/getdata.py

如果你希望它只在12运行,那么你就可以

* 12 * * * * python path/to/file/getdata.py

答案 1 :(得分:0)

可以将Python文件视为可执行文件。您只需要使用chmod +x my_file.py授予他们执行权限,并告诉bash应该使用哪个解释器来解析文件,方法是添加#!/usr/bin/python作为代码文件的第一行。

完成这两件事后,您可以使用./my_file.py运行文件,并执行python脚本。

从这一点开始,它就像任何普通的程序一样,可以在cron / systemd中使用/无论你需要什么其他用途。一旦你有一个可用的Python脚本,它应该被视为与你系统上的任何其他可执行文件没有区别 - 在这方面,没有“Python世界”。

就额外的模块而言 - 这应该不是问题,因为Python仍将使用相同的方式来解析库位置。可能需要更新$ PYTHON_PATH以添加库路径 - 但是如果库已正确安装,则对于本地目录中包含的库(仅在Python无法找到它们的情况下),这可能不是问题,您可以添加: sys.path.apped(os.path.dirname(__file__))到您脚本的开头。