我有一个包含文本的大文件(2GB),我需要在每行中替换(每行都是单独的),行中存在的令牌的所有子串(在未定义的位置)并由前缀KEYWORD_ID标识/使用令牌和原始单词:
示例:
System.config({
packages: {
app: {
format: 'cjs', // commonjs
defaultExtension: 'js'
}
}
});
输出应如下所示:
This is an example of the KEYWORD_ID/Replace_Command that is given as an input,
replace command should be replaced
连续可能存在许多KEYWORD_ID
如何以有效的方式执行此操作?
感谢您的帮助
答案 0 :(得分:1)
2GB并不大,只是逐行迭代,并使用regex
如果有一个替换命令:
import re
str = 'This is an example of the KEYWORD_ID/Replace_Command that is given as an input, replace command should be replaced'
print(re.sub(r'\breplace\b', re.search('KEYWORD_ID/\w+',str).group(), str))
# returns: This is an example of the KEYWORD_ID/Replace_Command that is given as an input, KEYWORD_ID/Replace_Command command should be replaced
如果有更多,你将不得不迭代re.group