首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python:替换某一行下的字符串

Python:替换某一行下的字符串
EN

Stack Overflow用户
提问于 2020-04-16 20:47:00
回答 2查看 49关注 0票数 1

很抱歉写这篇文章,通常我尽量避免无用的问题,但我已经四处寻找了几天,没有找到我的问题的答案。

基本上,我在一个.txt文件中有这段代码:

代码语言:javascript
运行
复制
<item name="Find_this_keyword">
ente<value type="vector">[-0.1 0.2 0.3 1.4]
</item>

这一行在一千行内,与此类似,只是关键字不同。所以基本上我想让python用这个关键字来改变行下面的行。我需要将向量中的4个数字改为其他4个数字。

你有什么线索吗?

耽误您时间,实在对不起

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-16 21:33:07

使用正则表达式查找模式并替换该值:

代码语言:javascript
运行
复制
import re

pattern = '\[.+\]'
replace = '[num1, num2, num3, num4]'

file = open('code.txt', 'w')
    for line in file:
    if 'ente<value type="vector">' in line:
        re.sub(pattern, replace, line)

只需用您的新值替换num1num2num3num4即可。

如果你不想把它们用于任何数学运算,那就让它们以字符串格式存在吧。

票数 0
EN

Stack Overflow用户

发布于 2020-04-16 21:00:35

你可以试试这样的东西。

code.txt <-带代码的文件

代码语言:javascript
运行
复制
new_vals = [1, 2, 3, 4]
f1 = open('code.txt', 'r')
f2 = open('code_out.txt', 'a+')
for line in f1:
    newline = line
    if 'ente<value type="vector">' in line:  # check line by line and look if the prefix matches
         newline = 'ente<value type="vector">' + f'[{new_vals[0] {new_vals[1]} {new_vals[2]} {new_vals[3]}]'
    # replace the new line
    f2.write(newline)

f1.close()
f2.close()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61250596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档