当前位置: 首页 > news >正文

一个Python脚本,将CST Studio导出的1D数据的txt文件转换为与Ansys HFSS的CSV相同的格式

前言

本文含有AI生成的代码。

这个CST居然不能导出CSV,有点匪夷所思了,只好用Copilot辅助编写一个脚本转换格式,方便导入到之前写的画图程序中。

使用方法

  • 保存本文代码到一个.py文件,如txt2csv_dragdrop.py
  • 将.py文件设置为默认使用Python打开。
  • 将.txt 文件拖拽到它上面,程序将生成同名.csv文件。
# txt2csv_dragdrop.py
# 说明:Windows 下可将 .txt 拖拽到该 .py 文件上运行,自动输出同名 .csv
import csv
import os
import sysheader_dict = {"Frequency / GHz": "Freq [GHz]","Realized Gain": "dB(RealizedGainTotal) []","S1,1 [Magnitude / dB]": "dB(S(1,1)) []",
}def parse_txt_to_rows(path: str):header = Nonerows = []with open(path, "r", encoding="utf-8", errors="ignore") as f:for line in f:s = line.strip()if not s:continue# 注释/表头行:以 # 开头if s.startswith("#"):# 形如:#"Frequency / GHz"  "Realized Gain,..."if '"' in s:parts = []cur = ""in_q = Falsefor ch in s:if ch == '"':in_q = not in_qif not in_q and cur != "":for k, v in header_dict.items():if cur.startswith(k):cur = vbreakparts.append(cur)cur = ""elif in_q:cur += chif len(parts) >= 2:header = parts[:2]continue# 数据行:两列,空白或 tab 分隔parts = s.split()if len(parts) < 2:continuetry:x = float(parts[0])y = float(parts[1])except ValueError:continuerows.append((x, y))if header is None:header = ["col1", "col2"]return header, rowsdef convert_one(path: str):header, rows = parse_txt_to_rows(path)out_path = os.path.splitext(path)[0] + ".csv"with open(out_path, "w", newline="", encoding="utf-8-sig") as f:w = csv.writer(f, quoting=csv.QUOTE_ALL)w.writerow(header)w.writerows(rows)print(f"已生成: {out_path}  (行数: {len(rows)})")def main():if len(sys.argv) < 2:print("用法:将 .txt 文件拖拽到本脚本上,或命令行:python txt2csv_dragdrop.py <file1> [file2...]")sys.exit(1)for p in sys.argv[1:]:# 判断是否是txt文件if os.path.isfile(p) and p.lower().endswith(".txt"):convert_one(p)else:print(f"跳过(不是文件): {p}")input("处理完成,按回车键退出...")if __name__ == "__main__":main()
http://www.rkmt.cn/news/123771.html

相关文章:

  • AI生成论文AI率高么?12款写论文的AI指南,让写毕业论文不再苦恼! - 掌桥科研-AI论文写作
  • 2025年北京婚姻继承律师团队综合评估与精选推荐 - 2025年品牌推荐榜
  • 2025年北京婚姻继承律师团队服务指南与专业推荐 - 2025年品牌推荐榜
  • 2025年石景山区婚姻继承律师团队选择技巧:专业指南与实战解析 - 2025年品牌推荐榜
  • 企业数据API对接技术选型、架构设计与实战指南
  • 云南建筑企业资质服务终极擂台:5大维度36项指标,谁是全省129县市真正的服务王? - 昆明动态
  • 无线讲解器怎么选?这些要点和靠谱品牌别错过 - myqiye
  • 求推荐诚信靠谱的 PCB 失效分析企业 - 工业推荐榜
  • 2025年旋转接头厂家权威推荐榜单:高速旋转接头/液压旋转接头/导热油旋转接头源头厂家精选 - 品牌推荐官
  • 迪米特法则
  • 迪米特法则
  • 【赵渝强老师】K8s Pod中的业务容器
  • 【赵渝强老师】K8s Pod中的业务容器
  • 2025年浙江专业的ai搜索企业TOP5推荐:精选ai搜索公司助力企业营销获客腾飞 - mypinpai
  • 外贸-order
  • 2025年思维导图背诵方法、抽认卡管理软件方法核心学习方式TOP5推荐 - 工业推荐榜
  • Kafka - When is a schema registry service is needed?
  • 2025年上海遗产继承纠纷咨询排行榜,推荐靠谱的遗产继承事务所及精选机构 - myqiye
  • Python3 asyncio 模块
  • 2025口碑不错的展馆设计公司TOP5权威推荐:人防展馆设计公司解析 - 工业品牌热点
  • QtCreator的菜单栏不见了
  • ROS1-c++编译开发-CMake-Rviz可视化工具-roslaunch-01 - jack
  • 2025年专业工程律师推荐,工程律师哪家靠谱全解析 - 工业推荐榜
  • 2025年度精密轧机大型厂家排名:环保型精密轧机解析 - myqiye
  • 为什么协程能让程序不再卡顿?——从同步、异步到 C++ 实战
  • 有的人,叫他用 AI 搜答案,他居然真只是填个答案
  • 【赵渝强老师】Docker的Bridge网络模式
  • 2025认证乳化机供应商TOP5推荐:大型厂家选型指南,破解行业痛点助力高效生产 - 工业品牌热点
  • 如何选择专业的热能粉尘回收生产厂家?2025年指南 - 2025年品牌推荐榜
  • 2025年度专业失效分析机构排名:专业失效分析专家与权威失效分析报告推荐 - mypinpai