我想问一下,有没有办法让我用Python替换文本文件或源代码中的一些注释?我在评论之间创建了一个标记,我需要将所有旧评论替换为新评论(标记为/*<NeedtoReplace>*/
和/*<\NeedtoReplace>*/
)。我已经将新保存为newComment.txt
,并希望生成一个脚本,该脚本可以读取新注释并将其替换为旧的内部源代码。在我需要更改注释或标题注释的不同文件夹中有大约4个以上的源代码。使用python 2.6.6
/NeedtoReplace/
Copyright bla bla bla
Few lines of comment.
Other comment.
bla....
/\NeedtoReplace/
code
答案 0 :(得分:1)
您需要几个步骤,首先打开新的评论文件并存储文本。接下来在您的文件夹中扫描合适的源文件,例如: *.cpp
。对于每个文件,打开它并读取整个文件。接下来使用正则表达式替换来替换文本。接下来关闭源文件并重新打开以进行写入。然后将更新后的文本写回文件:
import glob
import re
with open('newComment.txt') as f_comment:
comment = f_comment.read()
for filename in glob.glob('*.cpp'):
with open(filename) as f_source:
source = f_source.read()
source = re.sub(re.escape(r'/*<HEADER>*/') + '.*?' + re.escape(r'/*<\HEADER>*/'), comment, source, flags=re.S)
with open(filename, 'w') as f_source:
f_source.write(source)
注意,这适用于单个文件夹中的所有.cpp
个文件。如果您需要遍历整个目录树,则可以更改为使用os.walk()
。
答案 1 :(得分:0)
我希望这可以帮到你:
string.replace(s,old,new [,maxreplace])
返回字符串s的副本,其中所有出现的substring old都替换为new。如果给出了可选参数maxreplace,则替换第一个maxreplace事件。