python - 仅查找和替换完整的单词?
问题描述
我对 Python 完全陌生,我目前正在尝试编写一个小脚本来查找和替换文件夹中所有相同类型文件中的不同输入。它目前看起来像这样并且到目前为止有效:
import glob
import os
z = input('filetype? (i.e. *.txt): ')
x = input('search for?: ')
y = input('replace with?: ')
replacements = {x:y}
lines = []
for filename in glob.glob(z):
with open(filename, 'r') as infile:
for line in infile:
for src, target in replacements.items():
line = line.replace(src, target)
lines.append(line)
with open(filename, 'w') as outfile:
for line in lines:
outfile.write(line)
lines = []
我的问题是我只想替换完整的单词,所以当尝试用“x”替换“0”时,“4025”不应该变成“4x25”。我试图合并正则表达式,但我无法使其工作。
解决方案
代替
line.replace(src, target)
尝试
re.sub(r'\b' + re.escape(src) + r'\b', target, line)
导入后re
。\b
匹配单词边界。
推荐阅读
- windows - 将数据导入 rstudio
- swift - SwiftUI:如何播放一次乒乓动画?向前和向后播放动画的正确方法?
- r - 将多行合并为一个时间间隔
- c++ - 将对成员的引用传递给基类的构造函数
- botframework - QnA 服务主动学习是否适用于来自频道的问题?
- c++ - 试图弄清楚我需要进行哪些更改才能使此代码正常工作。使用 Visual Studio
- node.js - SCIM 补丁库
- powershell - 用不同的名称重命名多个文件
- ios - Swift - 以编程方式在 UIView 中定位项目
- r - 我的绘图没有在 RStudio 中保存或打印,我尝试了 dev.off()