我在python中有很长的源代码,许多函数都记录在'''xxx'''
中,如何快速用"""xxx"""
替换它们?在任何文本编辑器? pycharm / sublime
def my_func():
'''
yeah a doc string
'''
pass
期望的结果:
def my_func():
"""
yeah a doc string
"""
pass
编辑:
在pycharm(或其他所有文本编辑器)中找到解决方案
搜索
'''(\n.*\n\s*)'''\n
并替换为
"""$1"""\n
ps:我不能只对'''
进行简单搜索,并将其替换为"""
,因为在代码中,多行字符串无处不在,而不仅仅是文档字符串。
答案 0 :(得分:4)
你可以通过三种方法实现它,
转到Code > Inspect Code
。 PyCharm将扫描您的代码(这可能需要一些时间),并将向您显示检查结果。
在检查结果中,在Python下它会显示Single Quoted docstrings
一次更改所有文件
从左侧窗格中选择Single quoted docstring
,然后点击Convert docstring to the triple double quoted string form
。现在所有文件都将更改为三倍双引号。
更改单个文件
选择Single quoted docstring
下的单个文件,然后点击Convert docstring to the triple double quoted string form
。
Replace in Path
在PyCharm中,右键单击项目并选择 Replace in Path
或 Ctrl + Shift + R 大骨节病>。
在Text to find
字段中输入'''
,然后在Replace with
字段中输入"""
。点击查找。 PyCharm将扫描文件并询问您是否要立即替换单次出现或所有出现。
正如其他人所说,这种方法可以胜任。
我推荐方法1 由于PyCharm是智能的,它可以在不改变多行字符串(如果你使用它)的情况下更改doctring,这在其他方法中很容易被替换。
答案 1 :(得分:0)
在vi中:
:%s/'''/"""/g *<return>*
答案 2 :(得分:0)
python -c "import sys;with open(sys.argv[1],'rb') as f: tmp = f.read();with open(sys.argv[1],'wb') as f:f.write(tmp.replace(\"'''\",'\"\"\"')"
答案 3 :(得分:0)
将我的评论转变为asnwer。如果你有很多文件,正则表达式是你的朋友。从GNU / Linux终端,您可以写:
find path/to/dir -name '*.py' -exec perl -p -i -e \'s/'''/"""/g\' {} \;