Mac平台BBEdit下Python合并坐标文件两步处理需求
从origin.txt直接生成ultimateTarget.txt的简易Python实现
需求梳理
直接从origin.txt生成目标文件,完成两步核心转换:
- 将行内的
X替换为C,Y替换为Z - 把
C后的毫米数值通过mmToDegrees函数转换为角度值 - 支持批量处理文件(兼容你原有的批量操作逻辑)
单文件转换基础版(适合新手理解)
代码逻辑简单直白,逐行处理输入文件,直接输出最终结果:
# 定义毫米转角度的函数,替换成你实际的转换公式 def mm_to_degrees(mm_value): # 示例:假设1毫米对应0.5度,替换成你的真实转换规则 return mm_value * 0.5 # 输入输出文件路径(和脚本放同一文件夹) input_file = "origin.txt" output_file = "ultimateTarget.txt" # 打开文件自动处理(无需手动关闭) with open(input_file, 'r') as f_in, open(output_file, 'w') as f_out: for line in f_in: # 清理行尾空格和换行符,跳过空行 clean_line = line.strip() if not clean_line: continue # 分割坐标项(假设格式为空格分隔,比如"X100.5 Y20.0") coords = clean_line.split() processed_coords = [] for item in coords: # 处理X→C并转换数值 if item.startswith('X'): mm_num = float(item[1:]) # 提取X后面的数字 angle = mm_to_degrees(mm_num) processed_coords.append(f"C{angle:.2f}") # 保留两位小数,可调整 # 处理Y→Z,直接替换字母 elif item.startswith('Y'): processed_coords.append(item.replace('Y', 'Z')) # 其他内容直接保留(如果有额外坐标项) else: processed_coords.append(item) # 拼接处理后的行,写入输出文件 f_out.write(' '.join(processed_coords) + '\n') print(f"转换完成!已生成文件: {output_file}")
批量处理版本(兼容原批量操作)
如果需要一次性处理多个origin_*.txt文件,用下面的代码:
import os def mm_to_degrees(mm_value): return mm_value * 0.5 # 替换成你的转换公式 # 处理当前文件夹下的文件(可修改为指定路径) target_folder = '.' # 遍历文件夹,筛选目标文件 for filename in os.listdir(target_folder): # 只处理以origin开头的txt文件,可根据你的文件名规则调整 if filename.startswith('origin') and filename.endswith('.txt'): input_path = os.path.join(target_folder, filename) # 自动生成输出文件名(比如origin1.txt → ultimateTarget1.txt) output_filename = filename.replace('origin', 'ultimateTarget') output_path = os.path.join(target_folder, output_filename) # 核心转换逻辑和单文件版一致 with open(input_path, 'r') as f_in, open(output_path, 'w') as f_out: for line in f_in: clean_line = line.strip() if not clean_line: continue coords = clean_line.split() processed_coords = [] for item in coords: if item.startswith('X'): mm_num = float(item[1:]) angle = mm_to_degrees(mm_num) processed_coords.append(f"C{angle:.2f}") elif item.startswith('Y'): processed_coords.append(item.replace('Y', 'Z')) else: processed_coords.append(item) f_out.write(' '.join(processed_coords) + '\n') print(f"已完成: {filename} → {output_filename}") print("所有文件处理完毕!")
使用方法
- 把代码复制到BBEdit中,保存为
convert_coords.py - 将脚本和你的
origin.txt(或批量文件)放在同一文件夹 - 运行脚本:
- 在BBEdit中:点击菜单栏
运行→运行脚本 - 或者打开终端,cd到文件夹后执行
python3 convert_coords.py
- 在BBEdit中:点击菜单栏
调整说明
- 如果坐标格式是逗号分隔(比如
X100.5,Y20.0),把split()改成split(',') - 小数位数可修改
:.2f为:.3f(三位)或其他数值 - 替换
mm_to_degrees函数内的代码为你的真实转换公式
内容的提问来源于stack exchange,提问作者CNC_Pete
相关产品推荐
相关产品推荐

