如何自动插入空格以使Python文件中的空行缩进?

时间:2018-03-27 07:55:11

标签: python indentation

我最近在尝试通过将python代码从PyDev和Emacs复制到python解释器来评估python代码时遇到了常见的"unexpected indent"问题。

尝试修复标签/空格和一些搜索后,我在this answer中找到了原因:

  

将某些内容粘贴到Python中时也会发生此错误   口译员(终端/控制台)。

     

请注意,解释器将空行解释为结尾   表达式,所以如果你粘贴像

这样的东西
def my_function():
    x = 3

    y = 7
  

解释器将y = 7之前的空行解释为结束   表达式......

,在我的情况下就是这种情况。还有一个对答案的评论指出了一个解决方案:

  

关键是函数定义中的空行很好,   但是他们仍然必须拥有自Python以来的初始空白   将任何空行解释为函数的结尾

但是解决方案是不切实际的,因为我有很多空行,这对解释器来说是个问题。我的问题是:

是否有方法/工具自动向空行插入正确数量的初始空格,以便我可以将我的代码从编辑器复制并粘贴到解释器?< / em>的

1 个答案:

答案 0 :(得分:5)

不要费心插入空格。告诉解释器执行一个文本块:

>>> exec(r'''
<paste your code>
''')

r''' ... ''' tripple-quoted字符串保留了转义符和换行符。有时候(尽管根据我的经验,很少),当代码块包含使用单引号的tripple引用字符串时,您需要使用r""" ... """

另一种选择是切换到使用IPython进行粘贴代码的日常测试,该代码使用空行处理粘贴代码。