Rumah > Artikel > pembangunan bahagian belakang > Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python
Terfikir secara tiba-tiba, apabila anda memasangkan USB, bolehkah anda melaksanakan program secara automatik pada USB. Selepas menyemak, saya mendapati bahawa ia hanya tersedia di Windows Anda juga boleh mencari butiran (kata kunci carian usb autorun). Walau bagaimanapun, jika saya mahu, sebagai contoh, apabila USB dipalamkan, fail penting dalam USB akan disalin secara automatik ke tempatan atau dimuat naik ke pelayan di latar belakang tanpa disedari sesiapa, maka bantuan perisian khas diperlukan.
Jadi saya terfikir sendiri, bolehkah saya menulis program dalam python dan biarkan ia berjalan di latar belakang. Setiap kali pemacu kilat USB dimasukkan, fail penting di dalamnya akan disalin secara automatik.
Pertama sekali Kami membuka terminal komputer dan masukkan direktori /Volumes Pada masa ini, masukkan pemacu kilat USB dan anda boleh mendapati ia dipasang di bawah direktori ini, dengan kata lain, kami hanya perlu mengimbas direktori ini di a masa tetap dan apabila folder baharu muncul dalam direktori ini , besar kemungkinan pemacu kilat USB telah dimasukkan.
Reka bentuk saya seperti ini, gunakan fungsi time.sleep(3) untuk memastikan program berjalan dan semak /Volumes/ setiap tiga saat Direktori, jika ada ialah folder tambahan, salin ke folder lain.
Seperti tajuknya, kami benar-benar hanya menggunakan 10 baris (sebenarnya 11 baris, untuk membentuk keseluruhannya :) Selesai dengan "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 mengujinya Idea ini adalah boleh dilaksanakan, 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 fail4 dalam folder1 folder4
Sekarang mari kita uji
root menyimpan lokasi semasa, ia akan menggunakan semua folder di bawah ./testwalk/ sebagai direktori root, cari di bawah
Baiklah, sekarang kita perlu mengulangi folder USB, cari semua fail, semak saiz, jika lebih kecil daripada, contohnya, 3M, salin ke rumah, jika lebih besar, buang je.
Sekarang mari ambil folder yang baru kita buat Contohnya, jika anda ingin menyalin file1.txt ke folder2:
Terdapat banyak alatan yang tidak tersedia di sini dalam shutil Dihuraikan.
os.path.getsize(nama fail) returns ialah nilai dalam bait Jika ia digunakan untuk melihat saiz fail, kita perlu menulis fungsi secara manual untuk menukarnya 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 ungkapan biasa dan satu bab dikhaskan untuknya dalam "Pemrograman Teras Python", jadi kami tidak akan mendalaminya .
Seperti berikut, kami membenarkan akhiran fail yang ditentukan dan saiz fail yang ditentukan untuk disalin ke dalam fail sasaran kami:
Menggunakan ungkapan biasa yang lebih kompleks boleh menentukan jenis fail dengan lebih baik
Pada masa ini saya mencipta fail dalam direktori Fail itu dipanggil newfile
Ringkasnya, menapis masa pengubahsuaian setiap fail boleh menyalin hanya yang dalam masa lalu baru-baru ini, atau dalam tempoh tertentu Fail yang diubah suai atau ditambah, ciri ini berguna dalam situasi tertentu.
Sebenarnya tajuk itu hanya untuk menarik perhatian semua orang, dan Apatah lagi virus.
Saya ingin menggunakan contoh ini untuk menunjukkan keupayaan kuat python untuk memproses fail dan membangkitkan semangat semua orang untuk belajar.
Pelaksanaan di atas adalah berdasarkan macos, Linux sepatutnya sama, dan tingkap juga boleh berjaya dengan sedikit pengubahsuaian. Teknik di atas adalah untuk pembelajaran sahaja dan tidak boleh digunakan untuk aktiviti lain
Atas ialah kandungan terperinci Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!