2021-02-26 shell与python的交互

1、python脚本:查询要处理的省份信息输出到一个文件中,即文件1

#coding=utf-8
import pandas as pd
import os,sys

work_path=os.getcwd()
file1 = os.path.join(work_path,'code_list.csv')
data = pd.read_csv(file1,sep=',',index_col=0)
for i in range(3,len(sys.argv)):
    print i-2,sys.argv[1],sys.argv[2],data[data['name']==sys.argv[i]].iloc[0,0],\
    data[data['name']==sys.argv[i]].iloc[0,1]

2、shell脚本:读取要处理的省份信息即文件1,调用对应的shell脚本,将处理结果输出到文件2中;读取文件2中要处理的订单信息到文件3中

#!/bin/bash

FILENAME1='./'$1'to_qurry.txt'
FILENAME2='./'$1'qurry_result.txt'
FILENAME3='./'$1'result.sql'

echo > $FILENAME1
echo > $FILENAME2
echo > $FILENAME3

python diff.py $1 $2 $3 > ${FILENAME1}

while read line
do
index=`echo $line| awk '{print $1}'`
start_time=`echo $line| awk '{print $2}'`
end_time=`echo $line | awk '{print $3}'`
province_code=`echo $line | awk '{print $4}'`
province_name=`echo $line | awk '{print $5}'`
echo "开始处理${province_name}省${start_time}到${end_time}的订单......"
if [ $index == 1 ];then
sh shell1.sh $province_code $start_time $end_time   >> ${FILENAME2}
else
sh shell2.sh $province_code $start_time $end_time  >> ${FILENAME2}
fi
done < ${FILENAME1}

cat ${FILENAME2} | awk -F '\t' '{if ($3==2) printf("update %s set order_status=4 where order_code = '\''%s'\'';\n",$1,$2) }' > ${FILENAME3}
echo "处理结束."
echo "--------------------------"
echo "要处理的订单信息:"
cat ${FILENAME3}

3、连库处理

读取要处理的订单信息,连库处理。

猜你喜欢

转载自blog.csdn.net/weixin_38192254/article/details/114128245