Ari*_*ide 8 converter string-formatting python-3.x
我如何转换Python的旧式格式字符串,如下所示:
print("You: %s points. Me: %s points." % (score, total - score))
Run Code Online (Sandbox Code Playgroud)
进入以下?
print(f"You: {score} points. Me: {total - score} points.")
Run Code Online (Sandbox Code Playgroud)
实际上,对于两个例子%s,我已经写了这个正则表达式:
"(.*)%s(.*)%s(.*)" % \(([^,\)]+), ([^,\)]+)\)f"$1{$4}$2{$5}$3"一个人可以很容易地编写其他几个正则表达式来处理1,3,4,... %s的情况,但是我正在寻找一种更通用,更容易出错的方法。
注意:AFAIK,2013年在这里提出了类似的问题(从旧样式自动转换高级字符串格式器),当时f字符串不是问题(它们是在Python 3.6中引入的)。
使用flynt. 您使用目录名称调用它,它会递归搜索所有 .py 文件并将%格式转换为 f 字符串。
flynt <directory_to_process>
Run Code Online (Sandbox Code Playgroud)
它将转换.format()呼叫以及%格式。
你可以安装它
pip install flynt
Run Code Online (Sandbox Code Playgroud)
请注意,转换%为 f-strings 并不完美,如果您将单个元素元组传递给它们,则会产生不同的结果(这就是 Python 摆脱%格式的原因)。
| 归档时间: |
|
| 查看次数: |
300 次 |
| 最近记录: |