Python 2.7 reindent.py-在命令行中不起作用
我在Python中遇到缩进问题。所以我下载了Python 2.7 reindent.py-在命令行中不起作用,python-2.7,indentation,Python 2.7,Indentation,我在Python中遇到缩进问题。所以我下载了reindent.py来纠正缩进错误 我使用以下命令安装了reindent.py-: pip install reindent reindent -n test1.py 但是我从命令行运行它会显示以下错误-: Traceback (most recent call last): File "/usr/local/bin/reindent", line 3, in <module> main() File "/usr/lo
reindent.py
来纠正缩进错误
我使用以下命令安装了reindent.py-:
pip install reindent
reindent -n test1.py
但是我从命令行运行它会显示以下错误-:
Traceback (most recent call last):
File "/usr/local/bin/reindent", line 3, in <module>
main()
File "/usr/local/lib/python2.7/dist-packages/reindent.py", line 92, in main
check(arg)
File "/usr/local/lib/python2.7/dist-packages/reindent.py", line 118, in check
if r.run():
File "/usr/local/lib/python2.7/dist-packages/reindent.py", line 177, in run
tokenize.tokenize(self.getline, self.tokeneater)
File "/usr/lib/python2.7/tokenize.py", line 170, in tokenize
tokenize_loop(readline, tokeneater)
File "/usr/lib/python2.7/tokenize.py", line 176, in tokenize_loop
for token_info in generate_tokens(readline):
File "/usr/lib/python2.7/tokenize.py", line 357, in generate_tokens
("<tokenize>", lnum, pos, line))
File "<tokenize>", line 127
for w in transcript:
^
IndentationError: unindent does not match any outer indentation level
我认为
reindent
应该纠正错误,而不是告诉我错误发生的位置。reindent.py
将选项卡更改为空格,并可以使不规则缩进成为统一的4个空格。它不会试图捕获或修复缩进错误
考虑以下代码,其中有一个缩进错误:
def foo():
print("Let's go")
for i in range(2): <-- IndentationError
print('Peay')
及
是修复代码的有效方法reindent.py
(或它所使用的tokenize
模块
依赖于)不尝试猜测编码者想要哪一个。因此
缩进错误
是至少有时需要人工干预的语法错误
要修复的干预。test1.py中存在缩进错误。修复缩进错误,然后
reindent.py
将起作用。@unutbu不是reindent.py假定为我修复缩进错误?有没有办法自动修复缩进错误?
% reindent.py script.py
Traceback (most recent call last):
...
File "/usr/lib/python2.7/tokenize.py", line 170, in tokenize
tokenize_loop(readline, tokeneater)
File "/usr/lib/python2.7/tokenize.py", line 176, in tokenize_loop
for token_info in generate_tokens(readline):
File "/usr/lib/python2.7/tokenize.py", line 357, in generate_tokens
("<tokenize>", lnum, pos, line))
File "<tokenize>", line 9
for i in range(2):
^
IndentationError: unindent does not match any outer indentation level
def foo():
print("Let's go")
for i in range(2):
print('Peay')
def foo():
print("Let's go")
for i in range(2):
print('Peay')