Maison > Article > développement back-end > C'est effrayant d'y penser, branchez la clé USB et commencez à exécuter le code Python
Une pensée soudaine, lorsque vous branchez l'USB, pouvez-vous exécuter automatiquement le programme sur l'USB. Après vérification, j'ai constaté que cela n'est possible que sous Windows. Vous pouvez également rechercher les détails (recherche par mot-clé usb autorun). Cependant, si je souhaite, par exemple, lorsqu'une clé USB est branchée, les fichiers importants de la clé USB seront automatiquement copiés sur le serveur local ou téléchargés sur un serveur en arrière-plan sans que personne ne s'en aperçoive, une assistance logicielle spéciale est alors nécessaire.
Alors je me suis dit : pourrais-je écrire un programme en python et le laisser s'exécuter en arrière-plan. Chaque fois qu'une clé USB est insérée, les fichiers importants qu'elle contient seront automatiquement copiés.
Nous ouvrons d'abord le terminal de l'ordinateur et entrons dans le répertoire /Volumes. À ce moment, insérez le disque U et vous constaterez qu'il est monté sous celui-ci. répertoire, c'est-à-dire que nous n'avons besoin d'analyser ce répertoire qu'à une heure fixe. Lorsqu'un nouveau dossier apparaît dans ce répertoire, il est probable qu'une clé USB ait été insérée.
Ma conception est comme ceci, utilisez la fonction time.sleep(3) pour maintenir le programme en cours d'exécution et vérifiez le répertoire /Volumes/ toutes les trois secondes. S'il y a des dossiers supplémentaires, copiez-les dans un autre dossier.
Comme le titre l'indique, nous n'avons en réalité utilisé que 10 lignes (en fait 11 lignes, pour composer :) pour compléter ce "virus". Nous pouvons constater que les répertoires de la clé USB sont tous placés dans le répertoire personnel une demi-minute après l'insertion.
Nous venons d'écrire un script très simple pour tester la faisabilité de cette idée, mais il reste encore des problèmes. La raison pour laquelle nous avons pu copier rapidement tous les fichiers de la clé USB était qu'il n'y avait que deux ou trois fichiers dans la clé USB et que leur taille ne dépassait pas 15 Mo. S'il y a de nombreux films, musiques et fichiers dont nous n'avons pas besoin sur le disque USB cible, notre programme devrait pouvoir les ignorer et sélectionner uniquement certains fichiers importants tels que les fichiers .docx tels que les fichiers .ppt, ou copier uniquement les fichiers récemment fichiers modifiés ou exclure tous les fichiers de taille supérieure à 5 Mo. Pouvons-nous le faire en python ? Bien sûr !
Donnons un exemple.
J'ai créé le dossier testwalk dans un certain répertoire. Il y a trois fichiers file123.txt et trois dossiers dossier123. Il y a les fichiers file4.txt et dossier4 dans le dossier1
Maintenant, testons-le.
root stocke l'emplacement actuel. Il utilisera tous les dossiers sous ./testwalk/ comme répertoire racine et effectuera une recherche vers le bas.
Afficher les répertoires individuellement
Afficher les fichiers individuellement
D'accord, maintenant nous devons récurer le dossier USB, trouver tous les fichiers, vérifier la taille, si elle est inférieure à, comme 3M, copiez-le simplement à la maison, jetez-le s'il est supérieur à la valeur.
Prenons maintenant le dossier comme exemple Si vous souhaitez copier le fichier1.txt dans le dossier2 :
Il existe de nombreux outils dans Shutil que je ne ferai pas. entrez dans les détails ici.
os.path.getsize (nom du fichier) renvoie une valeur en octets S'il est utilisé pour vérifier la taille du fichier, nous devons écrire manuellement une fonction dans It's. converti en un formulaire facile à lire.
Ici, il suffit de sélectionner la taille du fichier inférieure à 3M, 3M = 3 * 1024kB = 3 * 1024*1024byte
Combiné avecshutil.copy2, nous pouvons copier le fichier de la taille sélectionnée dans notre dossier cible
Ici, nous avons besoin d'expressions régulières pour nous aider.
Il y a beaucoup de contenu sur les expressions régulières, et un chapitre entier y est consacré dans "Python Core Programming", nous n'entrerons donc pas dans les détails.
Comme suit, nous autorisons la copie du suffixe de fichier spécifié et de la taille de fichier spécifiée dans notre fichier cible :
Utilisez des expressions régulières plus complexes pour mieux spécifier le fichier tapez
À ce moment-là, j'ai créé un fichier appelé newfile dans le répertoire
En bref, filtrer l'heure de modification de chaque fichier ne peut copier que le plus récent ceux ou fichiers qui ont été modifiés ou ajoutés au cours d’une période spécifique, cette fonction est utile dans des situations spécifiques.
En fait, il ne s'agit que d'un petit programme, pas d'un code malveillant sophistiqué. Je voudrais utiliser cet exemple pour démontrer la puissante capacité de Python à traiter des fichiers et susciter l'enthousiasme de chacun pour l'apprentissage. Les implémentations ci-dessus sont toutes basées sur Macos. Linux devrait également fonctionner avec de légères modifications. Les techniques ci-dessus sont uniquement destinées à l’apprentissage et ne doivent pas être utilisées pour d’autres activités.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!