Saya memiliki beberapa kode Python yang memiliki indentasi yang tidak konsisten. Ada banyak campuran tab dan spasi untuk membuat masalah lebih buruk, dan bahkan lekukan ruang tidak diawetkan.
Kode berfungsi seperti yang diharapkan, tetapi sulit untuk mempertahankannya.
Bagaimana saya bisa memperbaiki indentasi (seperti HTML Tidy , tetapi untuk Python) tanpa melanggar kode?
autopep8
memberikan lekukan dan banyak lagi: stackoverflow.com/questions/14328406/…Jawaban:
Gunakan
reindent.py
skrip yang Anda temukan diTools/scripts/
direktori instalasi Python Anda:Lihat skrip itu untuk instruksi penggunaan terperinci.
sumber
python-examples
paket.python-examples
terinstal, Anda akan menemukan reindent di/usr/share/doc/pythonX.X/examples/Tools/scripts/reindent.py
.Jika Anda menggunakan Vim , lihat
:h retab
.Misalnya, jika Anda cukup mengetik
semua tab Anda akan diperluas menjadi spasi.
Anda mungkin mau
untuk memastikan bahwa setiap baris baru tidak akan menggunakan tab literal.
Jika Anda tidak menggunakan Vim,
akan mengganti tab dengan spasi, dengan asumsi tab berhenti setiap 8 karakter, dalam
file.py
(dengan aslinya akanfile.py.bak
, untuk berjaga-jaga). Ganti 8s dengan 4s jika tab Anda berhenti setiap 4 spasi sebagai gantinya.sumber
Saya akan meraih autopep8 untuk melakukan ini:
Catatan: E101 dan E121 adalah indentasi pep8 (saya pikir Anda bisa dengan mudah lulus
--select=E1
memperbaiki semua masalah terkait indentasi - yang dimulai dengan E1).Anda dapat menerapkan ini pada seluruh proyek Anda menggunakan tanda rekursif:
Lihat juga Alat untuk mengonversi kode Python menjadi sesuai dengan PEP8 .
sumber
autopep8
gagal jika sintaksnya salah. Anda dapat mengonfirmasi bahwa menggunakanpython -tt <file.py>
autopep8 -i script.py
Gunakan autopep8
autopep8
secara otomatis memformat kode Python agar sesuai denganPEP 8
nullstyle
panduan ini. Ia menggunakanpep8
utilitas untuk menentukan bagian mana darinullcode
kebutuhan yang akan diformat.autopep8
mampu memperbaiki sebagian besarnullformatting
masalah yang dapat dilaporkan olehpep8
.sumber
Menggunakan Vim, seharusnya tidak lebih dari sekadar memukul Esc, dan kemudian mengetik ...
... pada file yang ingin Anda ubah. Itu akan mengubah semua tab menjadi empat spasi. Jika Anda memiliki spasi yang tidak konsisten juga, maka itu akan lebih sulit.
sumber
Ada juga PythonTidy (karena Anda bilang Anda suka HTML Tidy).
Itu bisa melakukan lebih banyak dari sekadar membersihkan tab. Jika Anda menyukai hal semacam itu, ada baiknya dilihat.
sumber
Pada kebanyakan sistem mirip UNIX, Anda juga dapat menjalankan:
dari baris perintah, ubah nomor jika Anda ingin mengganti tab dengan sejumlah spasi selain 4. Anda dapat dengan mudah menulis skrip shell untuk melakukan ini dengan banyak file sekaligus, mempertahankan nama file asli.
sumber
Jika Anda malas (seperti saya), Anda juga dapat mengunduh versi percobaan Wingware Python IDE, yang memiliki alat perbaikan otomatis untuk lekukan kacau. Ini bekerja dengan cukup baik. http://www.wingware.com/
sumber
Skrip reindent tidak berfungsi untuk saya, karena ada beberapa modul yang hilang. Lagi pula, saya menemukan
sed
perintah ini yang melakukan pekerjaan sempurna bagi saya:sumber
Coba Emacs. Ini memiliki dukungan yang baik untuk lekukan yang dibutuhkan dengan Python. Silakan periksa tautan ini http://python.about.com/b/2007/09/24/emacs-tips-for-python-programmers.htm
sumber
Coba IDLE , dan gunakan Alt+ Xuntuk menemukan lekukan.
sumber
Saya punya solusi sederhana untuk masalah ini. Pertama-tama Anda dapat mengetik ": retab" dan kemudian ": retab!", Maka semuanya akan baik-baik saja
sumber
:retab
" dalam konteks apa. Di Vim ?Dalam kasus mencoba menemukan alat untuk membuat
2-space indented
skrip python Anda menjaditab indented
versi, cukup gunakan alat online ini:https://www.tutorialspoint.com/online_python_formatter.htm
sumber