在5年多的不活动之后,我正在重新(学习)python;虽然我一开始并不擅长,但这并没有帮助… 以下是我想做的:
这两组代码各自按预期工作。我尝试了很多不同的方法来将这两组代码添加到一起,但都不起作用
示例文件(C:\gcode\aaaa.gcode)
# start of file
some text
other text
# more text
G00 X1 Y1
G00 X2 Y2
# other text
G00 X3 Y3
G00 X4 Y4
#end of file
对于最终结果,我希望:
# start of file
some text
other text
# more text
G1 X1 Y1 Z0.3
G1 X2 Y2 Z0.3
# other text
G1 X3 Y3 Z0.3
G1 X4 Y4 Z0.3
#end of file
示例代码/结果
Code:
with open(r'C:\gcode\aaaa.gcode', 'r') as fin, open(r'C:\gcode\bbbb.gcode', 'w') as fout:
for line in fin:
if line.startswith('G00'):
fout.write(line[:-1] + ' Z0.3' + '\r')
else:
fout.write(line)
Result:
# start of file
some text
other text
# more text
G1 X1 Y1
G1 X2 Y2
# other text
G1 X3 Y3
G1 X4 Y4
#end of file
Code:
with open(r'C:\gcode\aaaa.gcode', 'r') as fin, open(r'C:\gcode\bbbb.gcode', 'w') as fout:
for line in fin:
if line.startswith('G00'):
fout.write(line[:-1] + ' Z0.3' + '\r')
else:
fout.write(line)
Result
# start of file
some text
other text
# more text
G00 X1 Y1 Z0.3
G00 X2 Y2 Z0.3
# other text
G00 X3 Y3 Z0.3
G00 X4 Y4 Z0.3
#end of file
我尝试了下面代码的各种分支,但始终收到以下错误消息:
with open(r'C:\gcode\aaaa.gcode', 'r') as fin, open(r'C:\gcode\bbbb.gcode', 'w') as fout:
for line in fin:
if line.startswith('G00'):
fout.write(line[:-1] + ' Z0.3' + '\r')
fout = fout.replace('G00', 'G1') # newly added line
else:
fout.write(line)
AttributeError: '_io.TextIOWrapper' object has no attribute 'replace'
您试图在文件句柄上执行
.replace
-这没有意义,您应该在line
上执行,例如:还要注意,当且仅当行以
\r
分隔时,代码才能正常工作您不能从
fout
替换,您需要替换行的内容。这也不理解为什么你要开始与fout.replace('G00', 'G1') # newly added line
相等。试试这个:相关问题 更多 >
编程相关推荐