unindent outer online not indentationerror indentacion indent español error does python indentation

outer - ¿Herramienta para convertir sangría python de espacios a pestañas?



indentationerror: unindent does not match any outer indentation level (5)

Tengo algunos archivos .py que usan espacios para la sangría, y me gustaría convertirlos en pestañas.

Fácilmente podría hackear algo utilizando expresiones regulares, pero puedo pensar en varios casos extremos en los que este enfoque podría fallar. ¿Hay alguna herramienta que haga esto al analizar el archivo y determinar el nivel de sangría de la misma manera que lo hace el intérprete de Python?


En emacs, Mx tabify convertirá espacios en pestañas cuando sea posible. Probablemente desee establecer la variable de tab-width apropiada.

No sé si esto responde a su preocupación de que los espacios se interpreten de la misma manera que el intérprete de python, pero siempre se puede cargar el modo python y usar Mx indent-region .


Python incluye un script para el opuesto (pestañas a espacios). Es C:/Python24/Tools/Scripts/reindent.py para mí


Si no hay muchos archivos para convertir, puede abrirlos en vim y usar el comando :retab .

Consulte la documentación de vim para obtener más información.


: retab intercambiará la pestaña con espacios, y: retab! intercambiará espacios con pestañas. 1 pestaña = 4 espacios, 4 espacios = 1 pestaña, según la configuración de la pestaña.


Si usa Linux, también puede jugar con unexpand :

Convierte espacios en blanco en cada ARCHIVO a pestañas, escribiendo a la salida estándar. Sin ARCHIVO, o cuando ARCHIVO es -, lea la entrada estándar.