gpt4 book ai didi

python - 在某些文本出现后向文本文件添加行

转载 作者:行者123 更新时间:2023-11-28 20:20:42 24 4
gpt4 key购买 nike

我有一个需要操作的文本文件。我想在出现“exactarch”一词后添加一行。意味着每当“exactarch”出现时,我想在下一行添加文本。

例如如果这是原始文件内容,

[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
gpgcheck=1
plugins=1

我想修改如下:

[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1

这是我尝试做的:

with open('file1.txt') as f:
for line in input_data:
if line.strip() == 'exactarch':
f.write('obsoletes=1')

显然这是行不通的,因为我不知道如何计算并写入这一行。

最佳答案

您要求一个 Python 解决方案。但是像这样的任务需要使用更简单的工具来解决。

如果您使用的系统有 sed , 你可以在一个简单的一行中做到这一点:

$ sed '/exactarch/aobsoletes=1' < in.txt

这是什么意思?

  • sed:可执行文件
  • /exactarch/:匹配所有包含exactarch
  • 的行
  • a:在当前行之后,追加一个包含以下文本的新行
  • obsoletes=1:要追加到新行中的文本

输出:

[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1

编辑:

要就地修改文件,请使用选项 -i 并将文件作为参数:

$ sed -i '/exactarch/aobsoletes=1' in.txt

关于python - 在某些文本出现后向文本文件添加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30319701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com