如何解决在 .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'
(我的描述)标识。因此,对于此示例,我们有两个“块”:N100
和 N200
。
在每个“代码块”中都有一个包含“T”的字符串,一个 'T Code'
,(我的描述)不等于到 T0000。
在本例中,'T Code'
块的 N100
为“T0101”,'T Code'
块的 N200
为“T0303”
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 举报,一经查实,本站将立刻删除。