【问题标题】:Read and Append the specific content阅读并附加具体内容
【发布时间】:2015-09-07 04:22:09
【问题描述】:

在我之前的question 之后,如果我想追加行怎么办。在这种情况下,其他块也在输出文件中指定。

输入文件file1.txt

##### Xyz
* [] Task 112
* [] Cl 221

##### Foo
* [] Task 1
* [x] Clone 2

##### Bar:
* [x] Email to A
* [] Email to B
* [x] Email to C

##### Bob
* [] Task 3
* [x] Clone Bob

输出文件 file2.txt

##### Xyz


##### Foo
* [x] Clone 2

##### Bar:
* [x] Email to A
* [x] Email to C

##### Bob
* [x] Clone Bob

输出文件是预定义的结构,如输出文件 - file2.txt 所示,带有指定的块。如果在输入文件中添加了一些新项目内容 * [x],则应附加在输出文件中,不得添加任何重复项目。看看 argparse 的用法并附加一个以 [x] 开头的特定块或整个块会很有趣。谢谢:)

【问题讨论】:

    标签: python file append


    【解决方案1】:

    读取输入文件中的所有行,但只写入以指定字符串开头的行:

    with open("file1.txt", "rt") as finp:
        with open("file2.txt", "wt") as fout:
            for line in finp.readlines():
                if line.startswith("#####") or line.startswith("* [x]"):
                    fout.write(line)
    

    【讨论】:

    • @user3100115 你是对的,当然。我只想避免很长的第一行。 ;-) 好吧,说真的,我想让代码非常明确,所以我将每一行专门用于一个操作。
    • 问题已更新。先前的要求说明会误导要求。
    • 我们似乎没有输入文件创建输出文件。相反,我们必须根据另一个文件中的信息来更新一个文件。你能确认一下吗?
    • 我们正在创建输出文件。主要问题是输出文件具有与输入文件相同的块结构,需要相应地添加,以后如果有任何新项目应附加到输出文件的现有块中。
    • 所以你在我们运行程序之前确认输出文件存在,并且这个输出文件必须根据出现的信息更新 输入文件。换句话说,生成的 output 文件实际上是 input 文件和 original output 文件的合并。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多