Maison  >  Article  >  développement back-end  >  C'est effrayant d'y penser, branchez la clé USB et commencez à exécuter le code Python

C'est effrayant d'y penser, branchez la clé USB et commencez à exécuter le code Python

PHPz
PHPzavant
2023-04-12 12:52:031367parcourir

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é qu'il n'est disponible 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.

Comment juger si la clé USB est insérée ?

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code Python

Nous ouvrons d'abord le terminal de l'ordinateur et entrons dans le répertoire /Volumes. À ce moment, insérez la clé USB et vous pourrez. constater qu'il est monté dans ce répertoire. En d'autres termes, 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.

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code Python

Comme le titre l'indique, nous n'avons en réalité utilisé que 10 lignes (en fait 11 lignes, pour maquiller :) 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.

Comment copier sélectivement des fichiers ?

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 plus de 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

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code Python

Maintenant, testons. il

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code Python

root stocke l'emplacement actuel. Il utilisera tous les dossiers sous ./testwalk/ comme répertoire racine et recherchera vers le bas

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code Python

seul Afficher les répertoires

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code Python.

Afficher les fichiers individuellement

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code Python

D'accord, maintenant nous devons récurer le dossier USB, trouver tous les fichiers, vérifier la taille, s'il est plus petit, comme 3M, le copier à la maison, s'il est plus grand, le jeter.

Shutil Module

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code Python

Wow Prenons le dossier tout à l'heure comme exemple. d'autres outils, je n'entrerai pas dans les détails ici en silence.

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code Pythonos.path.getsize() détermine la taille

os.path.getsize (nom du fichier) renvoie une valeur en octets S'il est utilisé pour vérifier la taille du fichier, nous devons le faire manuellement. Écrivez une fonction qui le convertit en un formulaire facilement lisible.

Ici, il suffit de sélectionner la taille du fichier inférieure à 3M, 3M = 3 * 1024kB = 3 * 1024*1024byte

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code Python

peut être combiné avec close.copy2 sélectionné Des fichiers de différentes tailles sont copiés dans notre dossier cible

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code PythonComment spécifier le type de fichier

Ici, nous avons besoin d'expressions régulières pour nous aider.

Les expressions régulières contiennent beaucoup de contenu, et un chapitre entier leur 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 :

N'oubliez pas d'importer re

Utilisez plus expressions régulières complexes La formule permet de mieux spécifier le type de fichier

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code PythonFiltrer les fichiers en fonction de l'heure de modification

À ce moment-là, j'ai créé un fichier appelé newfile dans le répertoire

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code Python

En bref, le filtrage de l'heure de modification de chaque fichier permet de copier uniquement les fichiers qui ont été modifiés ou ajoutés récemment ou dans une période spécifique. Cette fonction est utile dans certaines situations.

Cest effrayant dy penser, branchez la clé USB et commencez à exécuter le code PythonRésumé

En fait, le titre est juste pour attirer l'attention de tout le monde. Ce n'est qu'un petit programme, et ce n'est pas un virus.

J'aimerais utiliser cet exemple pour montrer la puissante capacité de Python à traiter des fichiers et susciter l'enthousiasme de chacun pour l'apprentissage.

L'implémentation ci-dessus est basée sur macos, Linux devrait être le même et Windows peut également réussir 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 comportements

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer