Python

modul shutil dengan Python

modul shutil dengan Python
Manajemen File dan Penanganan objek file dianggap sebagai salah satu tugas paling rumit di semua bahasa pemrograman. Beberapa bahasa pemrograman memberi kami beberapa alat yang memisahkan bagian-bagian sulit dari Penanganan File dengan fungsi dan antarmuka yang mudah digunakan. Inilah tepatnya yang dimiliki Python diam modul juga demikian.

Python shutil

Modul python shutil memungkinkan pengembang untuk menggunakan objek file dengan sangat mudah dan tanpa masuk ke detail yang lebih dalam tentang cara kerja sesuatu di bawah selimut. Modul ini pada dasarnya mengabstraksikan semantik tingkat rendah dalam membuat dan mengelola objek file, membersihkannya setelah penggunaan selesai dan memungkinkan kita untuk fokus pada logika bisnis aplikasi. Kita akan melihat banyak contoh di sini, mari kita mulai.

Contoh dengan modul Python shutil

Kami akan mempelajari berbagai contoh yang menunjukkan penggunaan Python diam modul di sini.

Menyalin file

Dengan salinan file() berfungsi dalam diam modul, kita dapat membuat salinan persis dari file yang ada di mana saja di mesin. Mari kita lihat contoh program untuk menunjukkan bagaimana hal ini dapat dilakukan:

impor os
impor shutil
file_direktori = './File'
print('File sebelum:', os.listdir(direktori_file))
diam.file salinan('./File/halo.txt', './Files/hello_again.txt')
print('File setelah:', os.listdir(direktori_file))

Kami baru saja menyalin file yang ada di direktori yang diberikan untuk mengkloning file di direktori yang sama. Inilah yang kami dapatkan kembali dengan perintah ini:

Salinan file python shutil

Hal yang baik tentang fungsi ini adalah bahwa fungsi yang disebutkan juga mengambil sebagai input nama ke file baru yang akan dibuat.

Menyalin File ke direktori lain

Dimungkinkan untuk menyalin file ke direktori baru dengan shutil's salinan() fungsi. Mari kita lihat aksinya:

impor os
impor shutil
print('Membuat direktori baru.')
os.mkdir('LinuxHint')
print('Berkas sebelum: ', os.listdir('LinuxHint'))
diam.salinan('./File/halo.txt', 'LinuxHint')
print('File setelah: ', os.listdir('LinuxHint'))

Mari kita lihat output untuk perintah ini:

Menyalin file ke direktori baru

Perhatikan bahwa ketika file disalin menggunakan using salinan() fungsi, izin untuk file juga dikloning tetapi metadata file tidak disalin. Ini berarti ketika Anda memeriksa kapan file ini dibuat, itu akan menunjukkan waktu baru ketika Anda menjalankan skrip ini.

Menyalin file dengan Metadata

Di bagian terakhir, kami melihat bagaimana kami dapat membuat salinan file. Bagaimana jika Anda ingin membuat klon file yang tepat yang melibatkan kloning metadatanya juga seperti saat file dibuat, dll. Ini mungkin juga tapi ini mungkin tidak bekerja pada sistem berbasis POSIX. Mari kita lihat contoh bagaimana ini bisa dilakukan:

impor os
impor shutil
waktu impor
direktori_baru = 'LinuxHint'
src_file = './File/halo.txt'
tujuan_file = './LinuxHint/halo.txt'
def file_metadata(file):
stat_info = os.status(berkas)
print('Mode :', okt(stat_info.st_mode))
print(' Dibuat :', waktu.waktu(stat_info.st_ctime))
print('Diakses:', waktu.waktu(stat_info.st_atime))
print('Dimodifikasi:', waktu.waktu(stat_info.st_mtime))
os.mkdir(direktori_baru)
print('Metadata untuk file sumber:')
file_metadata(src_file)
diam.copy2(src_file, direktori_baru)
print('Metadata untuk file tujuan:')
file_metadata(file_tujuan)

Inilah yang kami dapatkan kembali dengan perintah ini ketika kami menjalankan ini pada sistem berbasis POSIX (metadata tidak dikloning sepenuhnya):

Salin file dengan metadata

Pada sistem berbasis non-POSIX, bahkan waktu yang dibuat dan diakses akan sama persis.

Mengkloning direktori lengkap

Di bagian terakhir, kami melihat bagaimana kami dapat membuat salinan file. Di sini, kita akan melihat bagaimana kita dapat mengkloning direktori lengkap secara rekursif. Ini berarti bahwa jika direktori lain ada di direktori yang ingin kita kloning, direktori itu juga akan diklon.

impor cetak
impor shutil
impor os
src_direktori = './File'
tujuan_direktori = './LinuxHint'
diam.copytree(src_directory, dest_directory)
print('Isi Sumber:')
cetak.cetak(os.listdir(src_directory))
print('Isi Tujuan:')
cetak.cetak(os.listdir(direktori_tujuan))

Mari kita lihat output untuk perintah ini:

Menduplikasi direktori

Perhatikan bahwa direktori yang kita lewati ke copytree() berfungsi sebagai direktori tujuan tidak boleh ada sebelum kita menjalankan program ini.

Menghapus Direktori

Menghapus direktori sangat sederhana dengan rmtree() fungsi dalam modul. Mari kita lihat fungsi ini beraksi di sini:

impor cetak
impor shutil
impor os
delete_directory = 'LinuxHint'
direktori_saat ini = '.'
print('Konten sebelum dihapus:')
cetak.cetak(os.listdir(direktori_saat ini))
diam.rmtree(hapus_direktori)
print('Konten setelah dihapus:')
cetak.cetak(os.listdir(direktori_saat ini))

Setelah menjalankan skrip, LinuxPetunjuk direktori dihapus bersama dengan isinya. Inilah yang kami dapatkan kembali dengan perintah ini:

Hapus direktori

Menemukan file

Jika Anda ingin menemukan file yang ada pada variabel PATH di mesin Anda, kita dapat menggunakan: yang() berfungsi untuk menemukan file itu dengan nama. Mari kita lihat contoh demonstrasi untuk fungsi ini:

impor shutil
cetak (shutil.yang ('bsondump'))
cetak (shutil.which('tidak ditemukan file'))

Inilah yang kami dapatkan kembali dengan perintah ini:

Temukan file di PATH

Memantau Ruang Sistem File

Dengan modul shutil, kami memiliki fungsi disk_usage() di mana kami juga bisa mendapatkan informasi ruang disk tentang mesin kami. Mari kita lihat contoh yang menunjukkan data ini dengan cara yang dapat dibaca manusia:

impor shutil
total_b, bekas_b, gratis_b = tutup.penggunaan_disk('.')
gb = 10 ** 9 # GB == gigabyte
print('Jumlah: :6.2f GB'.format(total_b / gb))
print('Bekas : :6.2f GB'.format(bekas_b / gb))
print('Gratis : :6.2f GB'.format (gratis_b / gb))

Inilah yang kami dapatkan kembali dengan perintah ini:

Menemukan ruang sistem file

Mengarsipkan direktori

Sebagai contoh terakhir, kita akan melihat bagaimana kita dapat mengarsipkan modul shutil direktori make_arsip() fungsi. Mari kita lihat contoh programnya:

impor shutil
impor os
arsip_direktori = \
os.jalan.expanduser(os.jalan.join('jalan-direktori-tujuan', 'linuxhint'))
root_dir = os.jalan.expanduser(os.jalan.gabung('~', '.ss'))
diam.make_archive(arsip_direktori, 'gztar', root_dir)

Inilah yang kami dapatkan kembali dengan perintah ini:

Direktori pengarsipan

Jika Anda membatalkan pengarsipan file TAR dan melihatnya, itu akan berisi semua contain .ssh file direktori di dalamnya.

Kesimpulan

Dalam pelajaran ini, kita melihat bagaimana kita dapat mengelola objek file dengan operasi file tingkat tinggi dengan mudah dengan diam modul dengan Python. Operasi seperti menyalin konten file, membuat salinan file baru, dll. tampak mudah dengan modul ini.

Shadow of the Tomb Raider untuk Tutorial Linux
Shadow of the Tomb Raider adalah tambahan kedua belas untuk seri Tomb Raider - waralaba game aksi-petualangan yang dibuat oleh Eidos Montreal. Permain...
Cara Meningkatkan FPS di Linux?
FPS adalah singkatan dari Bingkai per detik. Tugas FPS adalah mengukur kecepatan bingkai dalam pemutaran video atau pertunjukan game. Dengan kata sede...
Game Lab Aplikasi Oculus Teratas
Jika Anda adalah pemilik headset Oculus maka Anda harus tahu tentang sideloading. Sideloading adalah proses menginstal konten non-toko di headset Anda...