You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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("所有文件处理完毕!")

使用方法

  1. 把代码复制到BBEdit中,保存为convert_coords.py
  2. 将脚本和你的origin.txt(或批量文件)放在同一文件夹
  3. 运行脚本:
    • 在BBEdit中:点击菜单栏运行→运行脚本
    • 或者打开终端,cd到文件夹后执行python3 convert_coords.py

调整说明

  • 如果坐标格式是逗号分隔(比如X100.5,Y20.0),把split()改成split(',')
  • 小数位数可修改:.2f为:.3f(三位)或其他数值
  • 替换mm_to_degrees函数内的代码为你的真实转换公式

内容的提问来源于stack exchange,提问作者CNC_Pete

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 09:43:37