Spaces:
Sleeping
Sleeping
| import os | |
| import tarfile | |
| import gradio as gr | |
| def parse_packet_log(data, packet_log): | |
| lines = packet_log.split("\n") | |
| for line in lines: | |
| if line.startswith("NO:"): | |
| data.append(line.strip()) | |
| elif line.strip(): | |
| words = [line.replace(" ", "")[i:i+4] for i in range(0, len(line.replace(" ", "")), 4)] | |
| data.append(words) | |
| return data | |
| def write_csv(data, output_file): | |
| with open(output_file, "w") as f: | |
| f.write(",,time,,,,,,,,,,,,,,,,,,,,,,,PI/sno,SA,DA,1W,,,,5W,,,,,10W,,,,,15W,,,,,20W,,,,,25W,,,,,30W,,,,,35W,,,,,40W,,,,,45W,,,,,50W,,,,,55W,,,,,60W,,,,,65W,,,,,70W,,,,,75W,,,,,80W,,,,,85W,,,,,90W,,,,,95W,,,,,100W") | |
| for row in data: | |
| if "NO" in row: | |
| f.write("\n" + row + ",") | |
| else: | |
| f.write(",".join(row) + ",") | |
| def process_files(files): | |
| data = [] | |
| output_file = "GW_log.csv" | |
| log_files = ["GTW_RV.log", "GTW_RV.bk0", "GTW_RV.bk1", "GTW_RV.bk2", "GTW_RV.bk3", "GTW_RV.bk4", "GTW_RV.bk5", "GTW_RV.bk6", "GTW_RV.bk7", "GTW_RV.bk8", "GTW_RV.bk9"] | |
| for file in files: | |
| with tarfile.open(file.name, "r:gz") as tar: | |
| tar.extractall() | |
| extracted_files = tar.getnames() | |
| for log_file in log_files: | |
| if log_file in extracted_files: | |
| with open(log_file, 'r') as f: | |
| packet_log = f.read() | |
| data = parse_packet_log(data, packet_log) | |
| write_csv(data, output_file) | |
| return output_file | |
| iface = gr.Interface( | |
| fn=process_files, | |
| inputs=gr.File(file_count="multiple"), | |
| outputs=gr.File(), | |
| title="Packet Log to CSV Converter", | |
| description="Upload tgz files containing GTW_RV* files to convert them to a single CSV file." | |
| ) | |
| if __name__ == "__main__": | |
| iface.launch() |