Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

PHPz
PHPzke hadapan
2023-04-12 12:52:031418semak imbas

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.

Bagaimana untuk menentukan sama ada pemacu kilat USB dimasukkan?

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

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.

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

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.

Bagaimana untuk menyalin fail secara terpilih?

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

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

Sekarang mari kita uji

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

root menyimpan lokasi semasa, ia akan menggunakan semua folder di bawah ./testwalk/ sebagai direktori root, cari di bawah

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

Lihat dir secara individu

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

Lihat fail secara individu

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

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.

modul shuttil

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

Sekarang mari ambil folder yang baru kita buat Contohnya, jika anda ingin menyalin file1.txt ke folder2:

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

Terdapat banyak alatan yang tidak tersedia di sini dalam shutil Dihuraikan.

os.path.getsize() menentukan saiz

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.

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

Di sini kita hanya perlu memilih saiz fail kurang daripada 3M, 3M = 3 * 1024kB = 3 * 1024* 1024bait

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

Digabungkan dengan shutil.copy2, anda boleh menyalin fail saiz yang dipilih ke dalam folder sasaran kami

Cara untuk menentukan jenis fail

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:

Jangan lupa untuk mengimport semula

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

Menggunakan ungkapan biasa yang lebih kompleks boleh menentukan jenis fail dengan lebih baik

Tapis fail berdasarkan masa pengubahsuaian

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

Pada masa ini saya mencipta fail dalam direktori Fail itu dipanggil newfile

Ia menakutkan untuk memikirkannya, pasangkan pemacu kilat USB dan mula melaksanakan kod Python

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.

Ringkasan

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!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam