Mula-mula kita buka terminal komputer dan masukkan direktori /Volumes masa, masukkan pemacu kilat USB Ia boleh didapati bahawa ia dipasang di bawah direktori ini, dengan kata lain, kita hanya perlu mengimbas direktori ini pada masa yang ditetapkan Apabila folder baru muncul dalam direktori ini, kemungkinan besar a Pemacu kilat USB telah dimasukkan.
Reka bentuk saya seperti ini, gunakan fungsi time.sleep(3) untuk memastikan program berjalan dan semak direktori /Volumes/ setiap tiga saat. Jika terdapat folder tambahan, salinnya ke folder lain.
Seperti yang ditunjukkan oleh tajuk, kami benar-benar hanya menggunakan 10 baris (sebenarnya 11 baris, untuk membentuk nombor bulat:) untuk melengkapkan "virus" ini. Kita boleh mendapati bahawa direktori dalam USB semuanya diletakkan dalam direktori rumah setengah minit selepas dimasukkan.
Kami baru sahaja menulis skrip yang sangat mudah untuk menguji kebolehlaksanaan idea ini, tetapi masih terdapat masalah. Sebab mengapa kami dapat menyalin semua fail dalam pemacu kilat USB dengan cepat adalah kerana terdapat hanya dua atau tiga fail dalam pemacu kilat USB, dan saiznya tidak melebihi 15M. Jika terdapat banyak filem, muzik dan fail yang kami tidak perlukan dalam cakera USB sasaran, program kami sepatutnya boleh melangkaunya dan hanya memilih beberapa yang penting seperti .docx seperti fail .ppt, atau hanya menyalin yang baru-baru ini. fail yang diubah suai, atau kecualikan semua fail yang bersaiz lebih besar daripada 5M. Bolehkah kita melakukannya dalam python?
Mari kita beri contoh.
Saya mencipta folder testwalk dalam direktori tertentu Terdapat tiga fail file123.txt dan tiga folder folder123 Terdapat fail file4.txt dan folder4 dalam folder1
.Sekarang mari kita uji
root menyimpan lokasi semasa Ia akan menggunakan semua folder di bawah ./testwalk/ sebagai direktori akar
Baiklah, sekarang kita perlu mengulang folder USB, cari semua fail, semak saiz, jika lebih kecil daripada, seperti 3M, salin ke rumah, jika lebih besar, buang.
Sekarang mari kita ambil folder tadi sebagai contoh Jika kita ingin menyalin file1.txt ke folder2:
Terdapat banyak alatan lain dalam shutil yang tidak akan saya perincikan di sini.
os.path.getsize (nama fail) mengembalikan nilai dalam bait Jika ia digunakan untuk menyemak saiz fail, kami perlukan Secara Manual tulis fungsi yang menukarkannya kepada bentuk yang mudah dibaca.
Di sini kita hanya perlu memilih saiz fail kurang daripada 3M, 3M = 3 * 1024kB = 3 * 1024*1024bait
Digabungkan dengan shutil.copy2, anda boleh menyalin fail saiz yang dipilih ke dalam folder sasaran kami
Di sini kami memerlukan ungkapan biasa untuk membantu kami.
Terdapat banyak kandungan tentang ungkapan biasa dan satu bab dikhaskan untuknya dalam "Python Core Programming", jadi kami tidak akan membincangkannya secara mendalam.
Seperti berikut, kami membenarkan akhiran fail yang ditentukan dan saiz fail yang ditentukan untuk disalin ke dalam fail sasaran kami:
Gunakan ungkapan biasa yang lebih kompleks untuk menentukan jenis fail dengan lebih baik
Pada masa ini saya mencipta fail dalam direktori Fail itu dipanggil newfile
Atas ialah kandungan terperinci Cara memasang pemacu kilat USB dan mula melaksanakan kod Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!