Maison >développement back-end >Tutoriel Python >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.
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.
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.
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
Maintenant, testons. il
root stocke l'emplacement actuel. Il utilisera tous les dossiers sous ./testwalk/ comme répertoire racine et recherchera vers le bas
.
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.
Wow Prenons le dossier tout à l'heure comme exemple. d'autres outils, je n'entrerai pas dans les détails ici en silence.
os.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
peut être combiné avec close.copy2 sélectionné Des fichiers de différentes tailles sont copiés dans notre dossier cible
Comment spécifier le type de fichier
Ici, nous avons besoin d'expressions régulières pour nous aider.
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
Filtrer les fichiers en fonction de l'heure de modification
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.
Ré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.
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!