如何使用三重双引号而不是三重单引号来创建所有文档字符串?

时间:2016-09-22 21:10:12

标签: python pycharm sublimetext docstring

我在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:我不能只对'''进行简单搜索,并将其替换为""",因为在代码中,多行字符串无处不在,而不仅仅是文档字符串。

4 个答案:

答案 0 :(得分:4)

你可以通过三种方法实现它,

方法1:检查整个项目

转到Code > Inspect Code。 PyCharm将扫描您的代码(这可能需要一些时间),并将向您显示检查结果。

在检查结果中,在Python下它会显示Single Quoted docstrings enter image description here

  1. 一次更改所有文件
    从左侧窗格中选择Single quoted docstring,然后点击Convert docstring to the triple double quoted string form。现在所有文件都将更改为三倍双引号。

  2. 更改单个文件
    选择Single quoted docstring下的单个文件,然后点击Convert docstring to the triple double quoted string form

  3. 方法2:将代码替换为Replace in Path

    在PyCharm中,右键单击项目并选择 Replace in Path Ctrl + Shift + R enter image description here enter image description here

    Text to find字段中输入''',然后在Replace with字段中输入"""。点击查找。 PyCharm将扫描文件并询问您是否要立即替换单次出现或所有出现。

    方法3:使用终端工具或Python读取行并替换。

    正如其他人所说,这种方法可以胜任。

      

    我推荐方法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\' {} \;