Maison > Article > développement back-end > Comment brancher une clé USB et commencer à exécuter du code Python
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é dans ce répertoire. , c'est-à-dire qu'il suffit d'analyser ce répertoire à 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 constituer le nombre entier :) 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 dossier 1
Maintenant, testons-le
magasins racine. l'emplacement actuel, il utilisera tous les dossiers sous ./testwalk/ comme répertoire racine, recherchez vers le bas
Ok, maintenant nous devons récurer le Dossier USB, recherchez tous les fichiers, vérifiez la taille, s'il est inférieur à, par exemple, 3M, copiez-le chez vous, s'il est plus grand, jetez-le.
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 n'entrerai pas 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 pour le convertir en. un formulaire facile à lire.
Ici, il nous 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 type de fichier
À ce moment-là, j'ai créé un fichier appelé newfile dans le répertoire
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!