我正在尝试转换以下代码
print "*** Dictionaries"
dictionaries = json.loads(api.getDictionaries())
print dictionaries
...
print(bestMatch)
...
到
print("*** Dictionaries")
dictionaries = json.loads(api.getDictionaries())
print(dictionaries)
...
print(bestMatch)
...
也就是说,在每一行print
上放置一对括号。
下面是我的代码
import re
with open('p2code.txt') as f:
lines = [line.rstrip() for line in f]
cmplr = re.compile(r'(?<=print).*')
p3code = []
for line in lines:
p3line = line
m = cmplr.search(line)
if m:
p3line = 'print(' + m.group(0) + ')'
p3code.append(p3line)
with open('p3code.txt', 'w') as f:
for line in p3code:
f.write(f"{line}\n")
有2个问题与上面的代码有关。
是否有更优雅的替换方式,例如cmplr.sub
?如果有,我该如何做?print
行中的一行已经将括号
print(bestMatch)
如何使代码跳过这一行,避免出现类似
print((bestMatch))
The idea/need comes from Cambridge's API doc https://dictionary-api.cambridge.org/api/resources#python
1条答案
按热度按时间ccrfmcuu1#
您可以在命令行中使用sed的单个命令来完成此操作。
这是最小的,也是最简单的,但是如果你坚持使用python,你可以使用以下方法:
您可以进一步使用正则表达式here。