微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 .gcode 文件中搜索以特定字母开头的字符串

如何解决在 .gcode 文件中搜索以特定字母开头的字符串

我有一个名为 test.gcode文件。该文件包含以下数据:

N100(ROUGH FACE/OD - CNGP-432HP KC5410 ) 
G00G20G40G54G99X10.0Z10.0T0000 
G00T0101 
G50S2200 
G97S1400M03P11 
G96S1200 
G00X3.8(X3.7)Z.2M8 
Z.03 
G1Z.005F.020 
X-.07F.01
G00Z.1 
G00X3.523
Z.03 
G1Z-2.F.015
X3.8(X3.763) 
G00Z.2 
M9 
G00G40X10.0Z10.0T0000
M01
 
N200(CUTOFF - .118 WIDE TAG N3A IC20 ) 
G00G20G40G54G99X10.0Z10.0T0000 
G00T0303 
G97S429M03 
G96S400
G00X3.563Z.2M8 
Z-.173 
G1X3.335F.0025 
G00X3.563
Z-.211 
G1X3.335 
G00X3.563
G50S1800 

您会注意到每个“块”代码都由换行符分隔,并在每个“块”的第一行中由 'N Code'(我的描述)标识。因此,对于此示例,我们有两个“块”:N100N200

在每个“代码块”中都有一个包含“T”的字符串,一个 'T Code',(我的描述)不等于到 T0000。

在本例中,'T Code' 块的 N100 为“T0101”,'T Code' 块的 N200 为“T0303”

我想读取这个文件输出一个包含以下内容的txt文件

N100:T0101
N200:T0303

到目前为止,我有以下几点:

import re
pattern = re.compile("^N")

for line in open("test.gcode"):
    for match in re.finditer(pattern,line):
        print(line)

我很困惑如何找到每个块的相关 T 值并将其写入文件

任何帮助将不胜感激!

解决方法

通过在换行符上拆分数据,您可以在没有 re 的情况下执行此操作。请注意,此答案假设每一行都有一个尾随空格,就像您的示例一样。

with open("test.gcode","r") as data:
    items = [i.split("\n")for i in data.split("\n \n")]
    itemlist = [i[0].split("(")[0] + ':' + i[2][3:].strip() for i in items]
    with open("outfile.txt","w") as outfile:
        outfile.write("\n".join(itemlist))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。