工具:优化功耗解析界面txt文件的生成路径
authorCaisking <3449750381@qq.com>
Thu, 19 Dec 2024 07:52:36 +0000 (15:52 +0800)
committerCaisking <3449750381@qq.com>
Thu, 19 Dec 2024 07:52:36 +0000 (15:52 +0800)
tools/log_parser/runtimeanalysis.py

index 480c624..4ef7b3c 100644 (file)
@@ -1,63 +1,74 @@
-import os\r
-import sys\r
-\r
-path = r"."\r
-\r
-\r
-txtname = sys.argv[-1]\r
-\r
-# 字母要小写\r
-str_bin_list =[\r
-               ['0001',"开机 "],\r
-               ['0002',"关机 "],\r
-               ['0003',"重启 "],\r
-               ['0004',"ota升级 "],\r
-               ['0005',"恢复出厂设置 "],\r
-               ['0801',"屏幕亮 "],\r
-               ['0802',"屏幕灭 "],\r
-               ['0a01',"充电开始 "],\r
-               ['0a02',"充电停止 "],\r
-               ['0e01',"本地音乐开始播放 "],\r
-               ['0e02',"本地音乐开始暂停 "],\r
-               ['0e03',"本地音乐播放停止 "],\r
-               ['0f01',"闹钟铃声开始播放 "],\r
-               ['0f02',"闹钟铃声播放停止 "],\r
-               ['0f03',"倒计时铃声开始播放 "],\r
-               ['0f04',"倒计时铃声播放停止 "],\r
-               ['0f05',"查找手表铃声开始播放 "],\r
-               ['0f06',"查找手表铃声播放停止 "],\r
-               ['1101',"录音开始 "],\r
-               ['1102',"录音停止 "],\r
-               ['1103',"AI录音开始 "],\r
-               ['1104',"AI录音停止 "]\r
-               ]\r
-\r
-\r
-f_out = open("runtimeout.txt","w+")\r
-\r
-with open(txtname,"rb+")as file:\r
-    data_1 = file.read(2)\r
-    data_2 = file.read(4)\r
-    while data_1:\r
-        # data_1_bin = data_1.hex()\r
-        data_1_bin = ''.join('{:02x}'.format(b) for b in data_1[::-1])  # 大端显示的16进制字符串\r
-        data_2_bin = ''.join('{:02x}'.format(b) for b in data_2[::-1])  # 大端显示的16进制字符串\r
-        coutn=0\r
-        for l in str_bin_list:\r
-            coutn+=1\r
-            if l[0]==data_1_bin:\r
-                f_out.write(l[1])\r
-                break\r
-        f_out.write(data_1_bin)\r
-        f_out.write(' ')\r
-        f_out.write(data_2_bin)\r
-        f_out.write('\n')\r
-    \r
-        data_1 = file.read(2)\r
-        data_2 = file.read(4)\r
-        # data_1_int=int(data_1)\r
-      \r
-file.close()\r
-f_out.close()\r
+import os  \r
+import sys  \r
 \r
+# 定义输出目录的路径  \r
+output_dir = os.path.join("tools", "log_parser")  \r
 \r
+# 如果输出目录不存在,则创建该目录  \r
+os.makedirs(output_dir, exist_ok=True)  \r
+\r
+# 定义输出文件的完整路径  \r
+output_file_path = os.path.join(output_dir, "runtimeout.txt")  \r
+\r
+# 定义默认的输入文件路径  \r
+default_txtname = "default_input.txt"  # 请将此处的文件名替换为你的默认输入文件名  \r
+\r
+# 从命令行参数中获取输入文件名称,如果没有提供则使用默认文件  \r
+txtname = sys.argv[-1] if len(sys.argv) > 1 else default_txtname  \r
+\r
+# 字符串与其对应的消息的映射  \r
+str_bin_list = [  \r
+    ['0001', "开机 "],  \r
+    ['0002', "关机 "],  \r
+    ['0003', "重启 "],  \r
+    ['0004', "ota升级 "],  \r
+    ['0005', "恢复出厂设置 "],  \r
+    ['0801', "屏幕亮 "],  \r
+    ['0802', "屏幕灭 "],  \r
+    ['0a01', "充电开始 "],  \r
+    ['0a02', "充电停止 "],  \r
+    ['0e01', "本地音乐开始播放 "],  \r
+    ['0e02', "本地音乐开始暂停 "],  \r
+    ['0e03', "本地音乐播放停止 "],  \r
+    ['0f01', "闹钟铃声开始播放 "],  \r
+    ['0f02', "闹钟铃声播放停止 "],  \r
+    ['0f03', "倒计时铃声开始播放 "],  \r
+    ['0f04', "倒计时铃声播放停止 "],  \r
+    ['0f05', "查找手表铃声开始播放 "],  \r
+    ['0f06', "查找手表铃声播放停止 "],  \r
+    ['1101', "录音开始 "],  \r
+    ['1102', "录音停止 "],  \r
+    ['1103', "AI录音开始 "],  \r
+    ['1104', "AI录音停止 "]  \r
+]  \r
+\r
+# 打开输出文件以写入  \r
+with open(output_file_path, "w+") as f_out:  \r
+    # 打开输入文件以读取  \r
+    with open(txtname, "rb") as file:  \r
+        data_1 = file.read(2)  \r
+        data_2 = file.read(4)  \r
+        while data_1:  \r
+            # 转换数据为大端16进制字符串  \r
+            data_1_bin = ''.join('{:02x}'.format(b) for b in data_1[::-1])  \r
+            data_2_bin = ''.join('{:02x}'.format(b) for b in data_2[::-1])  \r
+            found = False  \r
+            \r
+            # 遍历查找字符串  \r
+            for l in str_bin_list:  \r
+                if l[0] == data_1_bin:  \r
+                    f_out.write(l[1])  \r
+                    found = True  \r
+                    break  \r
+            \r
+            if not found:  \r
+                f_out.write(data_1_bin)  # 如果没有找到对应的字符串,则写入二进制字符串  \r
+            f_out.write(' ')  \r
+            f_out.write(data_2_bin)  \r
+            f_out.write('\n')  \r
+            \r
+            # 读取下一组数据  \r
+            data_1 = file.read(2)  \r
+            data_2 = file.read(4)  \r
+\r
+# 使用with语句自动关闭文件
\ No newline at end of file