使用 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\anaconda3\python.exe test.py

(當然,python 程序也可以是完整路徑。其實建議使用完整路徑,不然 bat 裏還要切換工作目錄,比較麻煩。)

給 python 程序傳參數

首先,python 程序裏面要設置接收參數。這個使用 sys 包就可以做到。

import sys

print(sys.argv[1]) # 第一個參數 (第0個參數是 python 文件路徑)
print(sys.argv[2]) # 第二個參數

然後,在 bat 裏直接在命令後加上對應的參數就好

C:\Users\ivy\anaconda3\python.exe test.py 參數1 參數2

完整示例

@echo off

Rem 申明 list 數組
set list=beijing shanghai changsha

Rem 循環 list 數組
For %%A IN (%list%) DO(
	C:\Users\ivy\anaconda3\python.exe test.py %%A
	c:\Python27\ArcGIS10.7\python.exe test2.py %%A
	ECHO *********** %%A done ****************
)

Rem 循環完不要直接退出程序,等待 check 一下
pause
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章