Files
AutoControlSystem-G/CU/CsvToIni.py
2025-09-10 09:16:57 +08:00

58 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import csv
def format_value(val):
"""格式化值整数保持原样小数保留3位"""
try:
num_val = float(val)
if num_val.is_integer():
return int(num_val)
return round(num_val, 3)
except ValueError:
return val
def csv_to_ini(csv_file, ini_file):
"""
将CSV文件转换为INI格式
:param csv_file: 输入的CSV文件路径
:param ini_file: 输出的INI文件路径
"""
try:
with open(csv_file, 'r', newline='', encoding='utf-8') as csv_input:
# 读取CSV文件
reader = csv.DictReader(csv_input)
# 确定所需字段
required_fields = ['name', 'x', 'y', 'z', 'u', 'v', 'w',
'id', 'order', 'lineid', 'status', 'linetype']
with open(ini_file, 'w', encoding='utf-8') as ini_output:
# 处理每一行数据
for row in reader:
# 检查是否所有必需字段都存在
if not all(field in row for field in required_fields):
missing = [field for field in required_fields if field not in row]
print(f"警告: 行 {reader.line_num} 缺少字段 {', '.join(missing)},跳过该行")
continue
# 写入section头
ini_output.write(f"[{row['name']}]\n")
# 写入数值字段
for field in required_fields[1:]: # 跳过name字段
formatted = format_value(row[field])
ini_output.write(f"{field} = {formatted}\n")
# 区块间添加空行
ini_output.write("\n")
print(f"转换成功INI文件已保存至: {ini_file}")
except Exception as e:
print(f"处理过程中出错: {str(e)}")
if __name__ == "__main__":
# 在此输入您的文件路径
input_csv = "D:/aa.csv" # 替换为实际CSV文件路径
output_ini = "D:/output.ini" # 输出的INI文件路径
csv_to_ini(input_csv, output_ini)