- 字符串的replace实现文本的批量替换
之前用Gcode生成器F-Egrave生成的Gcode代码有些代码与arduino板的GRBL固件并不兼容,特别是抬笔下笔的命令不一样,所以我用python将这些命令批量替换掉 - 程序
def main(): import os f_old = open('/home/pi/Desktop/output.nc','r') f_new = open('/home/pi/Desktop/output_new.nc','w') for line in f_old: if 'G0 Z#1' in line: line = line.replace('G0 Z#1','M5\nG4 P0.2') elif 'G1 Z#2' in line: line = line.replace('G1 Z#2','M3 S1000\nG4 P0.2') f_new.write(line) f_old.close() f_new.close() if __name__ == '__main__': main()
读取一行旧文件,替换掉关键字,把G0 Z#1’替换成’M5\nG4 P0.2’,‘G1 Z#2’替换成’M3 S1000\nG4 P0.2’,然后写入新文件。这样一行一行的替换可以避免string占用内存过大,不过缺点是需要两个文件操作。