特定行后如何停止在for循环中填充文件

时间:2019-03-20 14:40:08

标签: python-3.x loops for-loop

我决定为3D打印机编写一个程序,将字符串转换为g代码字符串。问题与模块有关,该模块从不必要的垃圾中清除了切片器生成的文件,并留下了清晰的g代码。

g代码文件具有以下结构:标头,g代码正文和页脚。 标头的结尾和g代码主体的开头始终是已知的。为了找到开始,我使用索引(211):

const

但是要预测g代码主体将在哪里结束并且页脚将在哪里开始是不可能的。

这是我的问题开始的地方。使用此代码,模块将所有行(从第211行)写入到新文件(包括页脚)。

当遇到等于“ G1 E-1.7000 F1800 \ r \ n”的字符串时,如何停止记录-所有文件中的字符串都相同。

3 个答案:

答案 0 :(得分:0)

您可能正在python中寻找break关键字。像这样使用时

for index, line in enumerate(string_list_form_old_file, start=1):
    if "G1 E-1.7000 F1800" in line:
        break
    if index == 202:
        new_file.write(line)
    if index >= 211:
        new_file.write(line)

程序在行中遇到字符串for时,将退出G1 E-1.7000 F1800循环。

请注意,您还可以对包括换行符和回车符的字符串进行硬比较,但是字符串比较通常比较困难。但是,如果上面的示例在另一个上下文(例如注释)中遇到字符串,则也可能会跳出循环。

答案 1 :(得分:0)

我尝试了这么简单的方法。从逻辑上讲应该可以解决所有问题,但实际上页脚保留在新文件中。

code

complite new file

答案 2 :(得分:0)

通过长期搜索错误,我重新检查了一次,是否在文件中准确地找到了“ G1 E-1.7000 F1800”。原来没有...