使⽤bat批处理运⾏python
使⽤ bat 批处理运⾏ python
最近实习处理数据,在⼀个⼯作流⾥⾯需要同时使⽤到 python2 和 python3,这样我就不能使⽤⼀个 main ⽂件把所有步骤串起来⼀键执⾏,多了很多⼈⼯操控的步骤。
bat 打开了新世界的⼤门。
这篇笔记讲讲⽤到的基本 bat 语法,以及如何使⽤它来把 python 程序串起来。
bat 基本语法
在此之前,⼤概解释⼀下。bat 就是批处理程序(不确定是不是可以在 linux 上运⾏)。
bat 注释
在⼀⾏代码前⾯加上Rem就代表注释,类似 python 中的#。
使⽤⽰例
Rem Echo test
打印到控制台
在需要打印的⽂字前⾯加上ECHO就代表打印,类似 python 中的print。
需要注意的是,bat中的字符串是不需要引号的。
使⽤⽰例
ECHO The best language of world is Python.
申明变量
使⽤set来申明变量。
⽐如申明⼀个名为list的数组
set list=1 2 3 4
set list=beijing shanghai changsha
FOR循环
使⽤⽰例。打印list数组中的每⼀个元素。
For %%A IN (%list%) DO (
Rem 这⾥开始是循环体
ECHO %%A
)
使⽤ bat 来执⾏ python 程序
其实就是平时我们在命令⾏运⾏ python 程序⼀样。
python test.py
python2 test.py
python3 test.py
如果要指定 python 解释器,那就带上解释器的完整路径。⽐如
C:\Users\ivy\ test.py
(当然,python 程序也可以是完整路径。其实建议使⽤完整路径,不然 bat ⾥还要切换⼯作⽬录,⽐较⿇烦。)
给 python 程序传参数
⾸先,python 程序⾥⾯要设置接收参数。这个使⽤ sys 包就可以做到。
import sys
print(sys.argv[1]) # 第⼀个参数(第0个参数是 python ⽂件路径)
print(sys.argv[2]) # 第⼆个参数
然后,在 bat ⾥直接在命令后加上对应的参数就好C:\Users\ivy\ test.py 参数1 参数2完整⽰例批处理文件注释
@echo off
Rem 申明 list 数组
set list=beijing shanghai changsha
Rem 循环 list 数组
For %%A IN (%list%) DO(
C:\Users\ivy\ test.py %%A
c:\Python27\ArcGIS10. test2.py %%A
ECHO *********** %%A done ****************
)
Rem 循环完不要直接退出程序,等待 check ⼀下
pause
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论