1 changed files with 62 additions and 61 deletions
@ -1,61 +1,62 @@ |
|||||
import re |
|
||||
import tkinter as tk |
|
||||
from tkinter import filedialog |
|
||||
import os |
|
||||
|
|
||||
def extract_radar_config(log_file_path, output_file_path=None): |
|
||||
""" |
|
||||
Extract radar configuration commands from log file. |
|
||||
|
|
||||
Args: |
|
||||
log_file_path (str): Path to input log file |
|
||||
output_file_path (str, optional): Path to save extracted config |
|
||||
""" |
|
||||
|
|
||||
# Pattern to match required lines |
|
||||
pattern = re.compile(r'INFO\s+-\s+radar_tracker\.console_logger\s+-\s+>\s+(.*)') |
|
||||
|
|
||||
extracted_commands = [] |
|
||||
|
|
||||
with open(log_file_path, 'r') as file: |
|
||||
for line in file: |
|
||||
match = pattern.search(line) |
|
||||
if match: |
|
||||
command = match.group(1).strip() |
|
||||
extracted_commands.append(command) |
|
||||
|
|
||||
# Output handling |
|
||||
if output_file_path: |
|
||||
with open(output_file_path, 'w') as out_file: |
|
||||
for cmd in extracted_commands: |
|
||||
out_file.write(cmd + '\n') |
|
||||
print(f"[INFO] Extracted config saved to: {output_file_path}") |
|
||||
else: |
|
||||
print("\n--- Extracted Radar Config ---\n") |
|
||||
for cmd in extracted_commands: |
|
||||
print(cmd) |
|
||||
|
|
||||
return extracted_commands |
|
||||
|
|
||||
|
|
||||
# Example usage |
|
||||
if __name__ == "__main__": |
|
||||
# Create and hide root tkinter window |
|
||||
root = tk.Tk() |
|
||||
root.withdraw() |
|
||||
|
|
||||
# Allow user to select a .log file |
|
||||
log_file = filedialog.askopenfilename( |
|
||||
title="Select Log File", |
|
||||
filetypes=[("Log Files", "*.log"), ("Text Files", "*.txt"), ("All Files", "*.*")] |
|
||||
) |
|
||||
|
|
||||
if log_file: |
|
||||
# Generate output file name (e.g., myscript.log -> myscript.cfg) |
|
||||
base_name = os.path.splitext(log_file)[0] |
|
||||
output_file = f"{base_name}.cfg" |
|
||||
|
|
||||
extract_radar_config(log_file, output_file) |
|
||||
print(f"[INFO] Processing complete for {log_file}") |
|
||||
else: |
|
||||
print("[INFO] No file selected.") |
|
||||
|
import re |
||||
|
import tkinter as tk |
||||
|
from tkinter import filedialog |
||||
|
import os |
||||
|
|
||||
|
|
||||
|
def extract_radar_config(log_file_path, output_file_path=None): |
||||
|
""" |
||||
|
Extract radar configuration commands from log file. |
||||
|
|
||||
|
Args: |
||||
|
log_file_path (str): Path to input log file |
||||
|
output_file_path (str, optional): Path to save extracted config |
||||
|
""" |
||||
|
|
||||
|
# Pattern to match required lines |
||||
|
pattern = re.compile(r'INFO\s+-\s+radar_tracker\.console_logger\s+-\s+>\s+(.*)') |
||||
|
|
||||
|
extracted_commands = [] |
||||
|
|
||||
|
with open(log_file_path, 'r') as file: |
||||
|
for line in file: |
||||
|
match = pattern.search(line) |
||||
|
if match: |
||||
|
command = match.group(1).strip() |
||||
|
extracted_commands.append(command) |
||||
|
|
||||
|
# Output handling |
||||
|
if output_file_path: |
||||
|
with open(output_file_path, 'w') as out_file: |
||||
|
for cmd in extracted_commands: |
||||
|
out_file.write(cmd + '\n') |
||||
|
print(f"[INFO] Extracted config saved to: {output_file_path}") |
||||
|
else: |
||||
|
print("\n--- Extracted Radar Config ---\n") |
||||
|
for cmd in extracted_commands: |
||||
|
print(cmd) |
||||
|
|
||||
|
return extracted_commands |
||||
|
|
||||
|
|
||||
|
# Example usage |
||||
|
if __name__ == "__main__": |
||||
|
# Create and hide root tkinter window |
||||
|
root = tk.Tk() |
||||
|
root.withdraw() |
||||
|
|
||||
|
# Allow user to select a .log file |
||||
|
log_file = filedialog.askopenfilename( |
||||
|
title="Select Log File", |
||||
|
filetypes=[("Log Files", "*.log"), ("Text Files", "*.txt"), ("All Files", "*.*")] |
||||
|
) |
||||
|
|
||||
|
if log_file: |
||||
|
# Generate output file name (e.g., myscript.log -> myscript.cfg) |
||||
|
base_name = os.path.splitext(log_file)[0] |
||||
|
output_file = f"{base_name}.cfg" |
||||
|
|
||||
|
extract_radar_config(log_file, output_file) |
||||
|
print(f"[INFO] Processing complete for {log_file}") |
||||
|
else: |
||||
|
print("[INFO] No file selected.") |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue