0

我有一个名为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”的字符串,a '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 值并写出文件感到困惑。

任何帮助将不胜感激!

4

1 回答 1

0

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))
于 2021-05-26T05:23:31.770 回答