C51字串提取python指令碼

2021-10-05 07:16:54 字數 1901 閱讀 4731

提取目錄下所有子資料夾下c檔案包含對應**的行。寫這個的主要用途是提取c51的字串定義,預設提取「static code unsigned char *」字元所在行,用於多語言翻譯時整理待翻譯提示符。

示例**:static code unsigned char *langzn=;

import os,re

class

searchfile

(object):

def__init__

(self,path=

'.')

: self._path=path

self.abspath=os.path.abspath(self._path)

# 預設當前目錄

deffindfunc

(self,funcname,root)

: filelist=

for root,dirs,files in os.walk(root)

:for name in files:

filename=re.match(

".*\.c$"

,os.path.join(root, name)

)if filename:

)print

('...........................................'

)for filepath in filelist:

if os.path.isfile(filepath)

:#開啟檔案查詢是否存在對應函式定義

fp =

open

(filepath,

'r')

try:

lines = fp.readlines(

)except

:print

("開啟檔案"

+filepath+

"異常"

)else

: k =

0for strtemp in lines:

out = re.match(

".*"

+funcname+

".*"

,strtemp)

if out :

print

(strtemp)

def__call__

(self)

:while

true

: workpath=

input

('查詢當前目錄? y/n:')if

(workpath =='')

:break

if workpath==

'y'or workpath==

'y':

root=self.abspath # 把當前工作目錄作為工作目錄

print

('當前工作目錄:'

,root)

#dirlist=os.listdir() # 列出工作目錄下的檔案和目錄

#print(dirlist)

else

: root=

input

('輸入查詢目錄:'

)print

('當前工作目錄:'

,root)

keyword=

input

('需要查詢的函式名稱:')if

(keyword=='')

: keyword=

"static code unsigned char *"

self.findfunc(keyword,root)

# 查詢帶指定字元的檔案

if __name__ ==

'__main__'

: search = searchfile(

) search(

)

C51 浮點數轉字串函式

微控制器浮點數轉字串可以使用 stdio.h 中sprintf函式,但 體積和ram占用空間比較大。自己寫的程式又不太好。在學習gps資料解析過程中用到了leiouyang的gps解析庫,在其中有浮點數轉字串函式,現推薦給大家。一下是完整的基於keil c51 的c檔案 include includ...

字串python3 python3字串常用方法

整型和布林值的轉換 bin 十進位制轉二進位制 int 1101 2 二進位制轉十進位制 十進位制轉二進位制的演算法 除2 取餘,獲取的所有餘數從下往上進行計算 二進位制轉十進位制的演算法 從右向左,依次乘以2的次方 1101 1 20 0 21 12 2 1 2 3 python2 中有long ...

51nod 1874 字串排序

定義乙個字串的無序度為所有位置後面的字母比該位置的字母小的總數之和。比如 daabec 這個字串的無序度是5,因為d後面有4個位置比它小 aabc e後面有1個比它小 c 其它位置後面沒有比自己小的。aacedgg 的無序度為1 e後面有乙個d比它小 zwqm 的無序度為6,每個位置後面所有的字母都...