米厂码垛修改
This commit is contained in:
58
CU/CsvToIni.py
Normal file
58
CU/CsvToIni.py
Normal file
@ -0,0 +1,58 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user