MDK執行python指令碼自動修改版本構造時間

2021-10-06 06:25:23 字數 2167 閱讀 3576

平常在寫微控制器專案時會加入版本號,編譯時間等。嫌手動修改巨集定義麻煩,嘗試使用指令碼自動完成,剛好 mdk 也可以指定執行指令碼。

指令碼語言選擇python

方法是mdk在編譯**前執行python檔案,替換指定檔案內的字串。

#define build_num           (uint8_t *)"7"

#define build_time (uint8_t *)"2020-05-18 08:55:08"

注意兩個點:

python的搜尋學習下吧。

import time

import sys

defupdate_build_info

(version_file_path="")

:ifnot version_file_path:

return

f =none

file_data =

""try

: f =

open

(file

=version_file_path, mode=

'r', encoding=

'utf-8'

)while

true

: line = f.readline()if

"#define"

in line and

"build_time"

in line:

_old_str_list = line.split(

"\""

) _old_str_list[1]

="\"\""

.format

(time.strftime(

"%y-%m-%d %h:%m:%s"

, time.localtime())

) new_str =

""for _ in _old_str_list:

new_str += _

line = line.replace(line, new_str)

if"#define"

in line and

"build_num"

in line:

_old_str_list = line.split(

"\""

) _old_str_list[1]

="\"\""

.format

(int

(_old_str_list[1]

)+1)

new_str =

""for _ in _old_str_list:

new_str += _

line = line.replace(line, new_str)

if line:

file_data += line

else

:break

f.close(

) f =

open

(file

=version_file_path, mode=

'w', encoding=

'utf-8'

)if file_data:

f.write(file_data)

except filenotfounderror:

print

(" not found\n"

.format

(version_file_path)

)finally

:if f and

not f.closed:

print

("close file\n"

) f.close(

)if __name__ ==

"__main__"

:# 傳入檔案路徑

arg = sys.ar**[1]

update_build_info(arg)

python自動執行指令碼

總體思路 將網頁執行指令碼抓包後轉換成python 用迴圈自動執行 1 抓包 f12開啟瀏覽器抓包,點執行按鈕,network copy curl 2 curl轉換成python curl轉換python 將轉換後的 copy到python檔案中,後面加迴圈語句,如下 for month in ra...

MDK程式無法執行

繼續我第乙個mdkv5.15程式。程式的功能是用printf輸出乙個字串,使用stm32f103rc晶元,v3.5.0版本的韌體庫,串列埠1輸出。include stm32f10x.h include usart inittypedef usart initstructure gpio initty...

python自動化執行指令碼

2 終端下執行 crontab e解釋 users tongmeina pycharmprojects jiratopdf everyorg.py 的含義 為你要自動化執行指令碼的絕對路徑,必須是絕對路徑 30 的含義 參照鏈結 第1個 表示分鐘1 59 每分鐘用 或者 1表示 第2個 表示小時1 ...