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.
Mula-mula kita buka terminal komputer dan masukkan direktori /Volumes. Pada masa ini, masukkan cakera U, anda boleh mendapati bahawa ia dipasang di bawah direktori ini, iaitu, kita hanya perlu mengimbas direktori ini pada masa yang ditetapkan Apabila folder baharu muncul dalam direktori ini, berkemungkinan a Cakera U telah dimasukkan.
Reka bentuk saya adalah seperti ini Gunakan fungsi time.sleep(3) untuk memastikan program berjalan, dan semak direktori /Volumes/ setiap tiga saat, Salin ke folder lain.
Seperti yang ditunjukkan oleh tajuk, kami benar-benar hanya menggunakan 10 baris (sebenarnya 11 baris, untuk membuat:) 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 ujinya.
root menyimpan lokasi semasa ia akan menggunakan semua folder di bawah ./testwalk/ sebagai direktori akar dan cari ke bawah.
Lihat dir secara individu
Lihat fail secara individu
Baiklah, sekarang kita perlu recurse folder USB, cari semua fail, semak saiz, jika lebih kecil daripada, contohnya, 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 digunakan untuk melihat Untuk 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
Ungkapan biasa diperlukan di sini Inilah formula 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 bernama newfile dalam direktori
Ringkasnya, anda boleh menapis setiap fail mengikut masa pengubahsuaian dan hanya menyalinnya. Fungsi ini berguna dalam situasi tertentu untuk fail yang telah diubah suai atau ditambah baru-baru ini atau dalam tempoh tertentu.
Sebenarnya, ini hanyalah program kecil, bukan kod jahat yang canggih. Saya ingin menggunakan contoh ini untuk menunjukkan keupayaan kuat Python untuk memproses fail dan membangkitkan semangat semua orang untuk belajar. Pelaksanaan di atas semuanya berdasarkan macos Linux 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!