使用 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM