Python

modul shutil di Python

modul shutil di Python
Pengurusan fail dan Mengendalikan objek fail dianggap sebagai salah satu tugas yang paling sukar dalam semua bahasa pengaturcaraan. Beberapa bahasa pengaturcaraan memberi kami beberapa alat yang menghilangkan bahagian sulit Pengendalian Fail dengan fungsi dan antara muka yang mudah digunakan. Inilah yang sebenarnya dilakukan oleh Python's selendang modul juga berfungsi.

Python shutil

Modul Python membolehkan pembangun menggunakan objek fail dengan sangat mudah dan tanpa memperincikan lebih terperinci mengenai bagaimana sesuatu berfungsi di bawah penutup. Modul ini pada dasarnya menyingkirkan semantik tahap rendah dalam membuat dan menguruskan objek fail, membersihkannya setelah penggunaan selesai dan membolehkan kita memberi tumpuan kepada logik perniagaan aplikasi. Kita akan melihat banyak contoh di sini, mari kita mulakan.

Contohnya dengan modul shuty Python

Kami akan mengkaji pelbagai contoh yang menunjukkan penggunaan Python selendang modul di sini.

Menyalin fail

Dengan fail salinan () berfungsi di selendang modul, kita dapat membuat salinan tepat fail yang ada di mana sahaja di mesin. Mari lihat contoh program untuk menunjukkan bagaimana ini dapat dilakukan:

import os
import tutup
fail_directory = './ Fail '
cetak ('Fail sebelum:', os.listdir (fail_direktori))
selendang.fail salinan ('./ Fail / salam.txt ','./ Fail / hello_again.txt ')
cetak ('Fail selepas:', os.listdir (fail_direktori))

Kami baru saja menyalin fail yang ada di direktori yang diberikan untuk mengklon file dalam direktori yang sama. Inilah yang kita dapat kembali dengan arahan ini:

Salinan fail Python shutil

Perkara yang baik mengenai fungsi ini adalah bahawa fungsi yang disebutkan juga mengambil sebagai memasukkan nama ke fail baru yang akan dibuat.

Menyalin Fail ke direktori lain

Adalah mungkin untuk menyalin fail ke direktori baru dengan shutil salinan() fungsi. Mari kita lihat dalam tindakan:

import os
import tutup
cetak ('Membuat direktori baru.')
os.mkdir ('LinuxHint')
cetak ('Fail sebelum:', os.listdir ('LinuxHint'))
selendang.salinan('./ Fail / salam.txt ',' LinuxHint ')
cetak ('Fail selepas:', os.listdir ('LinuxHint'))

Mari lihat output untuk arahan ini:

Menyalin fail ke direktori baru

Perhatikan bahawa apabila fail disalin menggunakan salinan() fungsi, kebenaran untuk fail juga diklon tetapi metadata fail tidak disalin. Ini bermaksud semasa anda memeriksa kapan fail ini dibuat, ia akan menunjukkan waktu baru ketika anda menjalankan skrip ini.

Menyalin fail dengan Metadata

Pada bahagian terakhir, kami melihat bagaimana kami dapat membuat salinan fail. Bagaimana jika anda ingin membuat klon tepat dari fail yang melibatkan pengklonan metadatanya juga seperti ketika fail dibuat dll. Ini mungkin juga berlaku tetapi ini mungkin tidak berfungsi pada sistem berasaskan POSIX. Mari kita lihat contoh bagaimana ini dapat dilakukan:

import os
import tutup
masa import
new_directory = 'LinuxHint'
src_file = './ Fail / salam.txt '
dest_file = './ LinuxHint / salam.txt '
def file_metadata (fail):
stat_info = os.stat (fail)
cetak ('Mode:', oct (stat_info.st_mode))
cetak ('Dibuat:', masa.ctime (stat_info.st_ctime))
cetak ('Diakses:', masa.ctime (stat_info.st_atime))
cetak ('Diubah suai:', masa.ctime (stat_info.st_mtime))
os.mkdir (direktori_ baru)
cetak ('Metadata untuk fail sumber:')
file_metadata (src_file)
selendang.copy2 (src_file, new_directory)
cetak ('Metadata untuk fail tujuan:')
file_metadata (dest_file)

Inilah yang kita dapat kembali dengan arahan ini apabila kita menjalankannya pada sistem berasaskan POSIX (metadata tidak diklon sepenuhnya):

Salin fail dengan metadata

Pada sistem berasaskan bukan POSIX, bahkan masa yang dibuat dan diakses akan sesuai dengan tepat.

Direktori lengkap pengklonan

Pada bahagian terakhir, kami melihat bagaimana kami dapat membuat salinan fail. Di sini, kita akan melihat bagaimana kita dapat mengklon direktori lengkap secara berulang. Ini bermaksud bahawa jika direktori lain ada di direktori yang ingin kita kloning, mereka juga akan diklon.

import kertas
import tutup
import os
src_directory = './ Fail '
dest_directory = './ Petunjuk Linux '
selendang.copytree (src_directory, dest_directory)
cetak ('Kandungan Sumber:')
kertas cetak.kertas cetak (os.listdir (src_directory))
cetak ('Kandungan Destinasi:')
kertas cetak.kertas cetak (os.listdir (dest_directory))

Mari lihat output untuk arahan ini:

Menduplikasi direktori

Perhatikan bahawa direktori yang kita lalui untuk copytree () berfungsi sebagai direktori tujuan tidak mesti ada sebelum kita menjalankan program ini.

Memadamkan Direktori

Menghapus direktori sangat mudah dengan rmtree () berfungsi dalam modul. Mari lihat fungsi ini di sini:

import kertas
import tutup
import os
delete_directory = 'LinuxHint'
current_directory = '.'
cetak ('Kandungan sebelum penyingkiran:')
kertas cetak.kertas cetak (os.listdir (semasa_direktori))
selendang.rmtree (delete_directory)
cetak ('Kandungan selepas penyingkiran:')
kertas cetak.kertas cetak (os.listdir (semasa_direktori))

Setelah menjalankan skrip, LinuxHint direktori dihapuskan bersama dengan kandungannya. Inilah yang kita dapat kembali dengan arahan ini:

Padam direktori

Mencari fail

Sekiranya anda ingin mencari fail yang terdapat pada pemboleh ubah PATH pada mesin anda, kami dapat menggunakan yang () berfungsi untuk mencari fail itu dengan nama. Mari lihat contoh demonstrasi untuk fungsi ini:

import tutup
mencetak (selendang.yang ('bsondump'))
mencetak (selendang.yang ('no-file-found'))

Inilah yang kita dapat kembali dengan arahan ini:

Cari fail di PATH

Memantau Ruang Sistem Fail

Dengan modul shutil, kita mempunyai fungsi disk_usage () di mana kita dapat memperoleh maklumat ruang cakera tentang mesin kita juga. Mari lihat contoh yang menunjukkan data ini dengan cara yang dapat dibaca oleh manusia:

import tutup
total_b, used_b, free_b = shutil.penggunaan cakera('.')
gb = 10 ** 9 # GB == gigabait
cetak ('Jumlah: : 6.2f GB '.format (total_b / gb))
cetak ('Digunakan: : 6.2f GB '.format (used_b / gb))
cetak ('Percuma: : 6.2f GB '.format (percuma_b / gb))

Inilah yang kita dapat kembali dengan arahan ini:

Mencari ruang sistem fail

Mengarkibkan direktori

Sebagai contoh terakhir, kita akan melihat bagaimana kita dapat mengarkibkan modul shutel direktori buat_arkib () fungsi. Mari lihat contoh program:

import tutup
import os
arkib_direktori = \
os.jalan.pengembang (os.jalan.sertai ('tujuan-direktori-jalan', 'linuxhint'))
root_dir = os.jalan.pengembang (os.jalan.sertai ('~', '.ssh '))
selendang.make_archive (archive_directory, 'gztar', root_dir)

Inilah yang kita dapat kembali dengan arahan ini:

Direktori pengarkiban

Sekiranya anda menyaharkib fail TAR dan melihatnya, ia akan mengandungi semua fail .ssh fail direktori di dalamnya.

Kesimpulannya

Dalam pelajaran ini, kita melihat bagaimana kita dapat menguruskan objek fail dengan operasi fail tahap tinggi dengan mudah selendang modul di Python. Operasi seperti menyalin kandungan fail, membuat salinan baru fail dll. kelihatan senang dengan modul ini.

5 Permainan Arcade Terbaik untuk Linux
Pada masa kini, komputer adalah mesin serius yang digunakan untuk permainan. Sekiranya anda tidak dapat memperoleh skor tinggi baru, anda akan tahu ma...
Battle For Wesnoth 1.13.6 Pembangunan Dikeluarkan
Battle For Wesnoth 1.13.6 dilancarkan bulan lalu, adalah rilis pengembangan keenam di 1.13.siri x dan memberikan sejumlah penambahbaikan, terutamanya ...
Cara Memasang League Of Legends di Ubuntu 14.04
Sekiranya anda peminat League of Legends, maka ini adalah peluang bagi anda untuk menguji menjalankan League of Legends. Perhatikan bahawa LOL disokon...