Bagaimana Anda mencetak perbedaan antara dua file dengan python?

Kami akan menggunakan dua file Python yang berbeda untuk menentukan perbedaan antara kedua file menggunakan perintah diff. Bagaimanapun juga kita adalah manusia dan ada banyak contoh kita akan membuat kesalahan seperti lupa spasi, titik, atau tanda hubung.

Pertama-tama, kita akan membuat dua file Python yang disusun ulang1. py dan atur ulang2. py. Saya menggunakan nano tetapi Anda dipersilakan untuk menggunakan vim, mana saja yang mengapung perahu Anda

touch rearrange1.py
nano rearrange1.py

Masukkan kode di bawah ini di rearrange1. py

#!/usr/bin/env python3import redef rearrange_name(name):
result = re.search(r”^([\w .]*), ([\w .]*)$”, name)
if result == None:
return result
return “{} {}”.format(result[2], result[1])

Ctrl+O, Enter, Ctrl+X untuk menyimpan pengaturan ulang1. py

Sekarang, masukkan kode di bawah ini di rearrange2. py

#!/usr/bin/env python3import redef rearrange_name(name):
result = re.search(r”^([\w .-]*), ([\w .-]*)$”, name)
if result == None:
return result
return “{} {}”.format(result[2], result[1])
_

Pastikan untuk menyimpan mengatur ulang2. py. Setelah menyimpan, pastikan untuk chmod +x kedua file ini. Kedua file akan terlihat seperti ini

Gambar 1. Struktur kedua file

Kami mungkin dapat mengetahui perbedaan antara kedua file Python ini karena tidak banyak baris yang harus dilihat; . Hal terbaik untuk dilakukan adalah menggunakan perintah diff

diff rearrange1.py rearrange2.py_

Gambar 2. Perbedaan antara mengatur ulang1. py dan atur ulang2. py

Lebih jelas sekarang berdasarkan dua hasil dari Gambar 2 ini, Anda pasti bisa melihat perbedaannya. Hanya ada dua garis untuk melihat perbedaannya. Kadang-kadang ketika file lebih besar, mungkin ada banyak baris yang menunjukkan banyak perbedaan

Perbedaannya terletak pada simbol garis. Simbol kurang dari memberi tahu kita bahwa baris pertama telah dihapus dari file pertama, dan simbol lebih besar memberi tahu kita bahwa baris kedua ditambahkan ke file kedua. Pada dasarnya, baris sebelumnya diganti dengan baris yang lebih baru. Ini biasa terjadi dalam hal modifikasi kode. Ini bukan satu-satunya kemungkinan karena ada contoh lain yang dapat dijelaskan lebih lanjut secara rinci pada referensi di bawah ini

(Referensi. pengalaman langsung dari kursus Google di Coursera berjudul, “Intro to Git and Github”)

Lebih banyak konten di PlainEnglish. io. Mendaftar untuk buletin mingguan gratis kami. Ikuti kami di Twitter dan LinkedIn. Bergabunglah dengan komunitas kami Perselisihan

Modul ini mendefinisikan fungsi untuk membandingkan file dan direktori, dengan berbagai pertukaran waktu/kebenaran opsional. Untuk membandingkan file, lihat juga modul

Modul ini mendefinisikan fungsi-fungsi berikut

filecmp. cmp(f1 , f2 , dangkal=Benar)

Bandingkan file bernama f1 dan f2, kembalikan True jika terlihat sama, False jika tidak

Jika dangkal benar dan tanda tangan (jenis file, ukuran, dan waktu modifikasi) dari kedua file identik, file dianggap sama

Jika tidak, file akan dianggap berbeda jika ukuran atau isinya berbeda

Perhatikan bahwa tidak ada program eksternal yang dipanggil dari fungsi ini, memberikan portabilitas dan efisiensi

Fungsi ini menggunakan cache untuk perbandingan sebelumnya dan hasilnya, dengan entri cache tidak valid jika informasi untuk file berubah. Seluruh cache dapat dihapus menggunakan

filecmp. file cmp(dir1 , dir2 , umum , dangkal=Benar)

Bandingkan file di dua direktori dir1 dan dir2 yang namanya diberikan secara umum

Mengembalikan tiga daftar nama file. cocok, tidak cocok, kesalahan. match berisi daftar file yang cocok, mismatch berisi nama file yang tidak cocok, dan error mencantumkan nama file yang tidak dapat dibandingkan. File terdaftar dalam kesalahan jika tidak ada di salah satu direktori, pengguna tidak memiliki izin untuk membacanya atau jika perbandingan tidak dapat dilakukan karena alasan lain

Parameter dangkal memiliki arti dan nilai default yang sama dengan untuk

Misalnya, filecmp_1 akan membandingkan filecmp2 dengan filecmp3 dan filecmp4 dengan filecmp5. filecmp6 dan filecmp7 masing-masing akan berada di salah satu dari tiga daftar yang dikembalikan

filecmp. hapus_cache()

Bersihkan cache filecmp. Ini mungkin berguna jika file dibandingkan dengan sangat cepat setelah dimodifikasi sehingga berada dalam resolusi mtime dari sistem file yang mendasarinya

Baru di versi 3. 4

Kelas

kelas filecmp. dircmp(a , b, ignore=None, hide=None)

Bangun objek perbandingan direktori baru, untuk membandingkan direktori a dan b. abaikan adalah daftar nama untuk diabaikan, dan defaultnya. hide adalah daftar nama yang akan disembunyikan, dan standarnya adalah filecmp0

Kelas membandingkan file dengan melakukan perbandingan dangkal seperti yang dijelaskan untuk

Kelas menyediakan metode berikut

laporkan()

Cetak (ke ) perbandingan antara a dan b

report_partial_closure()

Cetak perbandingan antara a dan b dan subdirektori langsung umum

report_full_closure()

Cetak perbandingan antara a dan b dan subdirektori umum (secara rekursif)

Kelas menawarkan sejumlah atribut menarik yang dapat digunakan untuk mendapatkan berbagai bit informasi tentang pohon direktori yang dibandingkan

Perhatikan bahwa melalui filecmp6 kait, semua atribut dihitung dengan malas, jadi tidak ada penalti kecepatan jika hanya atribut yang ringan untuk dihitung yang digunakan

kiri

Direktori a

Baik

Direktori b

daftar_kiri

File dan subdirektori dalam a, difilter dengan sembunyikan dan abaikan

daftar_kanan

File dan subdirektori di b, difilter dengan sembunyikan dan abaikan

umum

File dan subdirektori di a dan b

left_only

File dan subdirektori hanya di a

benar_hanya

File dan subdirektori hanya ada di b

common_dirs

Subdirektori di a dan b

berkas umum

File di a dan b

common_funny

Nama di a dan b, sedemikian rupa sehingga jenisnya berbeda di antara direktori, atau nama yang melaporkan kesalahan

file_sama

File yang identik di a dan b, menggunakan operator perbandingan file kelas

diff_files

File yang ada di a dan b, yang isinya berbeda menurut operator pembanding file kelas

file_lucu

File yang ada di a dan b, tetapi tidak dapat dibandingkan

subdirektori

Nama pemetaan kamus ke dalam instance (atau instance MyDirCmp jika instance ini bertipe MyDirCmp, subkelas dari )

Berubah di versi 3. 10. Sebelumnya entri selalu contoh. Sekarang entri bertipe sama dengan self, jika self adalah subkelas dari.

filecmp. DEFAULT_IGNORES

Baru di versi 3. 4

Daftar direktori yang diabaikan secara default

Berikut adalah contoh sederhana penggunaan atribut difflib_4 untuk mencari secara rekursif melalui dua direktori untuk menampilkan file umum yang berbeda

Bagaimana saya bisa membedakan antara dua file?

Membandingkan file (perintah diff) .
Untuk membandingkan dua file, ketik berikut ini. perbedaan bab 1. ba bab 1. Ini menampilkan perbedaan antara bab 1. .
Untuk membandingkan dua file sambil mengabaikan perbedaan jumlah ruang putih, ketik berikut ini. diff -w prog. c. bak prog. c

Bagaimana Anda menggunakan perintah diff di Python?

diff(array[, and[, axis]]) digunakan saat kita menghitung perbedaan diskrit urutan ke-n di antara sumbu yang diberikan . Perbedaan orde pertama diberikan oleh out[i] = arr[i+1] – arr[i] sepanjang sumbu yang diberikan. Jika kita harus menghitung perbedaan yang lebih tinggi, kita menggunakan diff secara rekursif.

Bagaimana cara membandingkan daftar file dengan Python?

Modul filecmp di python dapat digunakan untuk membandingkan file dan direktori . 1. filecmp Membandingkan file file1 dan file2 dan mengembalikan True jika identik, False jika tidak. Secara default, file yang memiliki atribut identik dikembalikan oleh os.

Bagaimana cara membandingkan file teks dengan Python?

Metode 2. Membandingkan kedua file baris demi baris .
Buka file menggunakan metode open()
Ulangi kedua file dan bandingkan baris demi baris
Jika kedua garis sama maka cetak SAMA
Jika tidak, cetak kedua baris