Python 阅读并附加特定内容
在上一行之后,如果要追加行,请执行以下操作。在这种情况下,输出文件中还指定了其他块 输入文件file1.txtPython 阅读并附加特定内容,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
##### 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您当然是对的。我只想避开长长的第一行嗯,说真的,我想让代码非常明确,所以我把每一行专门用于一个操作。问题更新了。前面的需求说明误导了需求。似乎我们不是从输入文件创建输出文件。相反,我们必须根据另一个文件中的信息更新一个文件。你能确认吗?我们正在创建输出文件。主要问题是输出文件与输入文件具有相同的块结构,需要相应地添加这些块结构,之后如果有任何新项,它将附加到输出文件的现有块中。因此,在我们运行程序之前,您确认输出文件存在,这个输出文件必须根据输入文件中的信息进行更新。换句话说,生成的输出文件实际上是输入文件和原始输出文件的合并。