Python - 如何删除最后两行文件,追加行,然后替换我删除的那两行?

时间:2017-08-04 02:56:53

标签: python flask

我正在使用Flask开发,我正在尝试创建一个页面来创建页面(作为一种自定义CMS)。因此页面需要为在app.py文件中调用时呈现页面模板的函数创建自己的@ app.route装饰器。我想出的是创建三个函数:remove_last_two_linescreate_rendering_func以及add_back_last_lines(以他们的行为命名)。 remove_last_two_lines函数和add_back_last_lines函数完全符合我的要求。我遇到的问题是create_rendering_func。它根本不做任何事情,并且不会引发错误。所以我认为代码是有效的(我正在传递有效的论据),我只是不明白为什么它不起作用。被覆盖的行是空的(这就是为什么在函数的最后一行之后有多个换行符的原因)。提前谢谢!

def add_new_url(route, func_name, title, filename):
    lines = open(__file__, 'r').readlines()
    lines[-6] = '@app.route(\'%s\')' % route
    lines[-5] = '\ndef %s' % func_name
    lines[-4] = '\n\trender_template(\'filename\', the_title=%s)\n\n\n\n\n' % title 

(这种方法很糟糕。有关更好方法的任何提示都很受欢迎)

1 个答案:

答案 0 :(得分:1)

我会将要插入的数据写为换行符(db.collection.update({'prev': updatedDocumentId},{'$set': {'prev_label': newLabel}}, multi=True) )附加的字符串列表,并通过切片将其插入\n;

lines

它需要将整个文件读入内存并在写入之前在内存中创建一个新文件,如果你的文件非常大,这可能是一个问题,但它会插入" Hello"和#34;世界!"在文件的第二行到最后一行之前。