sebelumnya dikenal sebagai editor massa Python
Menerapkan editor massa Python untuk memproses file teks menggunakan kode Python. Modifikasi ditampilkan pada stdout sebagai output diff. Seseorang kemudian dapat memodifikasi file target di tempat dengan opsi -W/-tulis. Ini sangat mirip dengan alat 2to3 yang dikirimkan dengan Python 3.
PERINGATAN : Kata peringatan tentang penggunaan eval() |
Alat ini berguna sejauh ini tetapi mengandalkan fungsi python Lihat artikel Ned Batchelder untuk diskusi menyeluruh tentang bahaya yang terkait dengan |
Anda mungkin perlu mengetahui dasar -dasar modul Python Re (ekspresi reguler).
Penggunaan: MassEdit.py [-h] [-v] [-W] [-v] [-e Expressions] [-f Fungsi]]
[-x executables] [-s start_dirs] [-m max_depth] [-o file]
[-g file] [--encoding encoding] [-Newline Newline]
[pola file [pola file ...]]
Editor Massal Python
Argumen Posisi:
pola file seperti pola nama file shell pola untuk diproses atau - untuk dibaca
dari Stdin.
Argumen opsional:
-h, --help menunjukkan pesan bantuan ini dan keluar
-V, --version menampilkan nomor versi program dan keluar
-W, --Write Modifikasi file target di tempat. Menunjukkan diff sebaliknya.
-v, --verbose meningkatkan verbositas log (dapat ditentukan banyak
waktu)
-E Ekspresi, -Ekspresi Ekspresi
Ekspresi Python diterapkan pada file target. Gunakan
Variabel garis untuk merujuk baris saat ini.
fungsi -f, fungsi fungsi
Fungsi python untuk diterapkan ke file target. Mengambil file
Konten sebagai input dan lines hasil. Tentukan fungsi sebagai
[Modul] :? <Function Name>.
-x dapat dieksekusi, -yang dapat dieksekusi yang dapat dieksekusi
Python dapat dieksekusi untuk diterapkan ke file target.
-s start_dirs, -mulai start_dirs
Direktori (IES) untuk mencari target.
-m max_depth,--max-depth-level max_depth
Kedalaman maksimum saat berjalan subdirektori.
-O file, -file output
Redirect output ke file
-g file, --generate file
Hasilkan file stub yang cocok untuk opsi -f
--Encoding Pengkodean pengkodean file input dan output
--Newline Newline Newline Karakter untuk file output
Contoh:
# Substitusi string sederhana (-e). Akan menunjukkan perbedaan. Tidak ada perubahan yang diterapkan.
massedit.py -e "re.sub ('failif', 'assertfalse', line)" *.py
# Modifikasi Level File (-F). Menimpa file yang ada (-W).
MassEdit.py -W -f Fixer: FixIt *.py
# Akan mengubah semua tes*.py dalam subdirektori tes.
massedit.py -e "re.sub ('failif', 'assertfalse', line)" -s tes tes*.py
# Akan mengubah metode virtual (hampir) menjadi mock_method yang cocok untuk gmock (lihat https://github.com/google/googletest).
massedit.py -e "re.sub (r ' s*virtual s+([ w: <>, s &*]+) s+( w+) ( ([^)]*), mock ( w+)*) (= s*0); g <3>, ( g <4>, override)); ', line) "gmock_test.cpp
Jika MassEdit diinstal sebagai paket (dari PYPI misalnya), seseorang dapat berinteraksi dengannya sebagai alat baris perintah:
python -m massedit -e "re.sub ('assertequals', 'assertequal', line)" test.py
Atau sebagai perpustakaan (opsi baris perintah di atas untuk dilewatkan sebagai argumen Kewyord):
>>> Impor MassEdit
>>> nama file = ['massedit.py']
>>> MassEdit.Edit_Files (fileNames, ["re.sub ('jerome', 'J.', line)"])
Terakhir, ada pembungkus massedit.bat yang nyaman untuk windows yang termasuk dalam distribusi.
Unduh massedit.py dari http://github.com/elmotec/massedit atau:
Python -m Pip Instal MassEdit
Saya menemukan diri saya menggunakan MassEdit sebagian besar untuk sumber modifikasi sumber basis kode besar seperti ini:
Pertama -tama buat modul fixer.py python dengan fungsi yang akan memproses kode sumber Anda. Misalnya, untuk menambahkan header:
def add_header (baris, file_name):
Yield '// Ini header saya' # akan menjadi baris pertama file.
untuk baris di baris:
garis hasil
Menambahkan lokasi fixer.py ke $PYTHONPATH Anda, lalu cukup hubungi massedit.py seperti ini:
massedit.py -f fixer: add_header *.h
Anda dapat menambahkan -s . Opsi untuk memproses semua file .h secara rekkursif.
Saya telah menggunakan berjalan dan diperiksa (dari Unix Power Tools) selama bertahun -tahun dan tidak menemukan pengganti yang baik di bawah Windows sampai saya menemukan resep Graham Fawcett Python 437932 di ActiveState. Itu menginspirasi saya untuk menulis massedit.
Inti sedikit disempurnakan, dan di sinilah kita. Jika Anda merasa berguna dan meningkatkannya, jangan lupa untuk mengirimkan tambalan. Terima kasih!
Jika Anda lebih tertarik pada alat seperti AWK, Anda mungkin akan menemukan PYP alternatif yang lebih baik.
Untuk mengatur segalanya untuk pengembangan, yang termudah adalah dengan menginstal konfigurasi tambahan:
Python -m venv venv . venv/bin/aktifkan python -m pip instal -e. [kembangkan]
Yang terbaik adalah menggunakan komitizen saat melakukan komitmen.
Berlisensi di bawah jangka waktu lisensi MIT. Lihat lisensi lisensi.txt file terlampir.
Lihat Changelog.md untuk perubahan lebih dari 0,69.0
https://github.com/myint https://github.com/tgoodlet https://github.com/alfnet https://github.com/isidroas