通过Shell脚本更新Python变量



我有一个shell脚本,它按顺序执行两个python脚本。执行完shell脚本后,我需要手动进入python脚本并更新两个变量。我希望在shell脚本中自动化这一部分,但不确定从哪里开始。

基本上,我想知道是否可以将shell变量传递(并在每次运行时递增)到Python脚本中。

壳牌

#!/bin/sh
echo "Download Data"
python /Download.py
wait
echo "Process Data"
python /Process.py

Python下载

import downloadFunction
downloadFunction.donwload('2014-03-28')

Python进程

import processData
processData.process(data)

从本质上讲,我想通过shell脚本将日期增加5倍。

因此,在Python脚本中定义日期变量。

Python下载

import downloadFunction
date = '2014-03-28'
downloadFunction.donwload(date)

然后,每次shell脚本运行Download.py和Process.py时,我都希望它在日期中添加一天,比如说五天。我不知道从哪里开始。

您希望将日期作为参数传递给脚本,而不是编辑硬编码的值。

Download.py:中

import downloadFunction
date = sys.argv[1]
downloadFunction.donwload(date)

然后在你的shell脚本中,类似的东西

#!/bin/sh
echo "Download Data"
for d in 2014-03-28 2014-03-29 2014-03-30 2014-03-31 2014-04-01; do
    python /Download.py "$d"
done
# No need to call wait here
echo "Process Data"
python /Process.py

就把我打得落花流水。我想我会分享我的解决方案。基本上与相同

#!/bin/sh
declare -a arr=("2014-04-01")
for i in "${arr[@]}"
do
    echo "Download Data"
    export i
    python Download.py
    echo "Process Data"
    python /Process.py
done 

下载位置.py

import downloadFunction
import os
x = os.environ['i']
downloadFunction(x)

相关内容

  • 没有找到相关文章

最新更新