tutorial lenguaje instalar descargar python

lenguaje - Cómo arreglar la sangría de Python



python tutorial (12)

El script reindent no me funcionó, debido a que faltaba un módulo. De todos modos, encontré este comando sed que hace el trabajo perfecto para mí:

sed -r ''s/^([ ]*)([^ ])//1/1/2/'' file.py

Tengo un código Python que tiene sangría inconsistente. Existe una gran cantidad de pestañas y espacios para empeorar aún más el asunto, e incluso la sangría de espacio no se conserva.

El código funciona como se esperaba, pero es difícil de mantener.

¿Cómo puedo corregir la sangría (como HTML Tidy , pero para Python) sin romper el código?


En la mayoría de los sistemas similares a UNIX, también puede ejecutar:

expand -t4 oldfilename.py > newfilename.py

desde la línea de comandos, cambie el número si desea reemplazar las pestañas con un número de espacios que no sea 4. Puede escribir fácilmente un script de shell para hacer esto con un montón de archivos a la vez, conservando los nombres de archivo originales.


Me gustaría alcanzar autopep8 para hacer esto:

$ # see what changes it would make $ autopep8 path/to/file.py --select=E101,E121 --diff $ # make these changes $ autopep8 path/to/file.py --select=E101,E121 --in-place

Nota: E101 y E121 tienen sangría pep8 (creo que simplemente puede pasar --select=E1 para corregir todos los problemas relacionados con la sangría, aquellos que comienzan con E1).

Puede aplicar esto a todo su proyecto usando la bandera recursiva:

$ autopep8 package_dir --recursive --select=E101,E121 --in-place

Consulte también la Herramienta para convertir el código Python para que sea compatible con PEP8 .



Pruebe IDLE y use Alt + X para encontrar la sangría.


Si eres perezoso (como yo), también puedes descargar una versión de prueba de Wingware Python IDE, que tiene una herramienta de corrección automática para la sangría desordenada. Funciona bastante bien. http://www.wingware.com/


Si está usando Vim , vea :h retab .

*:ret* *:retab* :[range]ret[ab][!] [new_tabstop] Replace all sequences of white-space containing a <Tab> with new strings of white-space using the new tabstop value given. If you do not specify a new tabstop size or it is zero, Vim uses the current value of ''tabstop''. The current value of ''tabstop'' is always used to compute the width of existing tabs. With !, Vim also replaces strings of only normal spaces with tabs where appropriate. With ''expandtab'' on, Vim replaces all tabs with the appropriate number of spaces. This command sets ''tabstop'' to the new value given, and if performed on the whole file, which is default, should not make any visible change. Careful: This command modifies any <Tab> characters inside of strings in a C program. Use "/t" to avoid this (that''s a good habit anyway). ":retab!" may also change a sequence of spaces by <Tab> characters, which can mess up a printf(). {not in Vi} Not available when |+ex_extra| feature was disabled at compile time.

Por ejemplo, si simplemente escribe

:ret

Todas tus pestañas se expandirán en espacios.

Es posible que desee

:se et " shorthand for :set expandtab

para asegurarse de que las nuevas líneas no usen tabulaciones literales.

Si no estás usando Vim,

perl -i.bak -pe "s//t/'' ''x(8-pos()%8)/eg" file.py

reemplazará las pestañas con espacios, asumiendo que cada tabulación se detiene cada 8 caracteres, en file.py (con el original yendo a file.py.bak , por si acaso). Reemplace los 8s por 4s si las tabulaciones son cada 4 espacios.


También está PythonTidy (ya que dijiste que te gusta HTML Tidy).

Sin embargo, puede hacer mucho más que solo limpiar pestañas. Si te gusta ese tipo de cosas, vale la pena echarle un vistazo.


Tengo una solución simple para este problema. Primero puede escribir ": retab" y luego ": retab!", Luego todo estará bien


Usando Vim, no debería ser más complicado que golpear a Esc , y luego escribir ...

:%s//t/ /g

... en el archivo que desea cambiar. Eso convertirá todas las pestañas a cuatro espacios. Si también tiene un espaciado inconsistente, entonces será más difícil.


Use el script reindent.py que encontrará en el directorio Tools/scripts/ de su instalación de Python:

Cambie los archivos Python (.py) para usar sangrías de 4 espacios y sin caracteres de tabulación dura. También recorte los espacios en exceso y las pestañas de los extremos de las líneas, y elimine las líneas vacías al final de los archivos. También asegúrese de que la última línea termina con una nueva línea.

Eche un vistazo a ese script para obtener instrucciones de uso detalladas.


Utilizar autopep8

autopep8 formatea autopep8 código Python para ajustarse a la guía de estilo nullstyle PEP 8 . Utiliza la utilidad pep8 para determinar qué partes del nullcode deben formatearse. autopep8 es capaz de solucionar la mayoría de los problemas de nullformatting que pueden informarse mediante pep8 .

pip install autopep8 autopep8 script.py # print only autopep8 -i script.py # write file