首页 > 解决方案 > 如何在python中动态地将文本添加到多个文件中

问题描述

我有几个文件,想在 python 中向它们添加一些文本(命名为changed_1changed_2等)。changed_3这是我的文件的一些行(但我的文件有数千行):

$MeshFormat
2.2 0 8
$EndMeshFormat
$PhysicalNames
8
2 12 "back"
2 14 "Fault"
3 1 "volume_1"
$EndPhysicalNames
...

我想在第 8 行 ( ) 之后添加 line/s 3 1 "volume_1"。这些行也应该动态生成。我有另一个名为n_iteration. 如果n_iteration是 2,我想3 2 "volume_2"在第 8 行之后添加。如果是3,我想添加3 2 "volume_2"等等3 3 "volume_3"。最后,我想让我的文件像输入格式一样更改和保存,但是添加了这些行(比如说n_iteration = 4):

$MeshFormat
2.2 0 8
$EndMeshFormat
$PhysicalNames
8
2 12 "back"
2 14 "Fault"
3 1 "volume_1"
3 2 "volume_2"
3 3 "volume_3"
3 4 "volume_4"
$EndPhysicalNames
...

我只能导入我的所有文件并使用以下代码对它们进行排序,但我没有成功地按照我的解释进行操作:

from glob import glob
all_files = glob('changed_*')
for i in all_files:
    with open(str(i)) as lines:
...

在此之前,我感谢任何帮助和反馈。

标签: pythonfile

解决方案


您需要了解文件及其内容之间的区别。您需要了解如何读入文件的内容,以及在写入文件时可以做什么和不可以做什么。通常,您可以写入文件末尾,也可以覆盖文件,但不能插入文件。您可以通过读入文件的内容来创建插入效果,然后用添加的新内容将其写回。

一种方法:你逐行读取文件,这样你就有了list一行。如果你总是在第八行之后插入新数据,你现在可以将内容一个一个写出来,然后在你写完第八行之后,写出你的新数据,然后继续你的其余内容在开始时阅读。


推荐阅读