Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 阅读并附加特定内容_Python_File_Append - Fatal编程技术网

Python 阅读并附加特定内容

Python 阅读并附加特定内容,python,file,append,Python,File,Append,在上一行之后,如果要追加行,请执行以下操作。在这种情况下,输出文件中还指定了其他块 输入文件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 ##### Xyz ##### F

在上一行之后,如果要追加行,请执行以下操作。在这种情况下,输出文件中还指定了其他块

输入文件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
##### Xyz


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

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

##### Bob
* [x] Clone Bob
输出文件file2.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
##### Xyz


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

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

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

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

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

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)

@用户3100115您当然是对的。我只想避开长长的第一行嗯,说真的,我想让代码非常明确,所以我把每一行专门用于一个操作。问题更新了。前面的需求说明误导了需求。似乎我们不是从输入文件创建输出文件。相反,我们必须根据另一个文件中的信息更新一个文件。你能确认吗?我们正在创建输出文件。主要问题是输出文件与输入文件具有相同的块结构,需要相应地添加这些块结构,之后如果有任何新项,它将附加到输出文件的现有块中。因此,在我们运行程序之前,您确认输出文件存在,这个输出文件必须根据输入文件中的信息进行更新。换句话说,生成的输出文件实际上是输入文件和原始输出文件的合并。