擅长:python、mysql、java
<p>下面的代码假定<code>lines</code>是表示文件中某行的字符串列表。你知道吗</p>
<hr/>
<pre><code>with open('filename') as f:
lines = f.readlines()
from collections import defaultdict
cntd = defaultdict(lambda: 0)
suffix = ['R', 'S', 'T']
newlines = []
for line in lines:
try:
kwd = line.split()[1]
except IndexError:
newlines.append(line)
continue
if kwd[0] == 'H' and kwd[-1].isdigit():
sfx = suffix[cntd[kwd]]
idx = line.index(kwd)
nl = line[:idx -1] + kwd + sfx + line[idx + len(kwd):]
# nl = line[:idx + len(kwd)] + sfx + line[idx + len(kwd):] # adjust formatting to your taste
newlines.append(nl)
cntd[kwd] += 1
else:
newlines.append(line)
with open('filename', 'w') as f:
f.writelines(newlines)
</code></pre>