Heim > Backend-Entwicklung > Python-Tutorial > Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

PHPz
Freigeben: 2023-04-12 12:52:03
nach vorne
1477 Leute haben es durchsucht

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

Ein plötzlicher Gedanke: Wenn Sie den USB-Stick anschließen, können Sie das Programm automatisch auf dem USB-Stick ausführen. Nach der Überprüfung habe ich festgestellt, dass es nur unter Windows verfügbar ist. Sie können auch nach den Details suchen (Suchbegriff „USB-Autorun“). Wenn ich jedoch beispielsweise beim Einstecken eines USB-Sticks möchte, dass die wichtigen Dateien auf dem USB-Stick im Hintergrund automatisch auf den lokalen Speicherort kopiert oder auf einen Server hochgeladen werden, ohne dass es jemand merkt, dann ist spezielle Softwareunterstützung erforderlich.

Also dachte ich mir, könnte ich ein Programm in Python schreiben und es im Hintergrund laufen lassen? Immer wenn ein USB-Stick eingesteckt wird, werden wichtige darauf befindliche Dateien automatisch kopiert.

Wie kann man beurteilen, ob die U-Disk eingelegt ist?

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

Zuerst öffnen wir das Computerterminal und geben das Verzeichnis /Volumes ein, und Sie können es finden Es wird in diesem Verzeichnis bereitgestellt. Mit anderen Worten: Wir müssen dieses Verzeichnis nur zu einem bestimmten Zeitpunkt scannen. Wenn in diesem Verzeichnis ein neuer Ordner angezeigt wird, wurde wahrscheinlich ein USB-Stick eingesteckt.

Mein Design sieht so aus: Verwenden Sie die Funktion time.sleep(3), um das Programm am Laufen zu halten, und überprüfen Sie alle drei Sekunden das Verzeichnis /Volumes/. Kopieren Sie diese in einen anderen Ordner.

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

Wie der Titel schon sagt, haben wir wirklich nur 10 Zeilen (eigentlich 11 Zeilen, um die ganze Zahl zu bilden:) verwendet, um diesen „Virus“ zu vervollständigen. Wir können feststellen, dass alle Verzeichnisse auf dem USB-Stick eine halbe Minute nach dem Einstecken im Home-Verzeichnis abgelegt werden.

Wie kopiere ich Dateien selektiv?

Wir haben gerade ein sehr einfaches Skript geschrieben, um die Machbarkeit dieser Idee zu testen, aber es gibt immer noch Probleme. Der Grund, warum wir alle Dateien auf dem USB-Flash-Laufwerk schnell kopieren konnten, lag darin, dass sich nur zwei oder drei Dateien auf dem USB-Flash-Laufwerk befanden und die Größe 15 MB nicht überschritt. Wenn sich auf dem Ziel-USB-Datenträger viele Filme, Musik und Dateien befinden, die wir nicht benötigen, sollte unser Programm in der Lage sein, diese zu überspringen und nur einige wichtige Dateien wie .docx oder .ppt-Dateien auszuwählen oder nur die zuletzt verwendeten Dateien zu kopieren geänderte Dateien oder schließen Sie alle Dateien aus, die größer als 5 MB sind. Können wir das natürlich in Python machen?

Geben wir ein Beispiel.

Ich habe den Testwalk-Ordner in einem bestimmten Verzeichnis erstellt. Es gibt drei Dateien, Datei 123.txt, und drei Ordner, Ordner 123. Es gibt die Dateien Datei 4.txt und Ordner 4 in Ordner 1. Jetzt testen wir it

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

root speichert den aktuellen Speicherort. Es werden alle Ordner unter ./testwalk/ als Stammverzeichnis verwendet und nur nach unten gesucht. Verzeichnisse anzeigen

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

Dateien einzeln anzeigen

Okay, jetzt müssen wir den USB-Ordner rekursieren, alle Dateien finden, die Größe überprüfen, wenn sie kleiner als z. B. 3 MB ist, sie nach Hause kopieren, wenn sie größer ist, verwerfen.

shutil-Modul

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

Nehmen wir nun den Ordner gerade als Beispiel. Wenn Sie Datei1.txt in Ordner2 kopieren möchten:

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

Es gibt viele Auf andere Tools werde ich hier in Shutil nicht näher eingehen.

os.path.getsize() bestimmt die Größe

os.path.getsize (Dateiname) gibt einen Wert in Bytes zurück. Wenn es zur Überprüfung der Dateigröße verwendet wird, müssen wir dies manuell tun Schreiben Sie eine Funktion, die es in eine leicht lesbare Form umwandelt.

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

Hier müssen wir nur die Dateigröße kleiner als 3M auswählen, 3M = 3 * 1024kB = 3 * 1024*1024byte

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

kann mit kombiniert werden Shutil.copy2 ausgewählt Dateien unterschiedlicher Größe werden in unseren Zielordner kopiert

So geben Sie den Dateityp an

Hier benötigen wir reguläre Ausdrücke, die uns helfen.

Reguläre Ausdrücke enthalten viel Inhalt, und in „Python Core Programming“ ist ihnen ein ganzes Kapitel gewidmet, sodass wir nicht näher darauf eingehen.

Wie folgt erlauben wir das Kopieren des angegebenen Dateisuffixes und der angegebenen Dateigröße in unsere Zieldatei:

Vergessen Sie nicht, erneut zu importieren

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

Mehr verwenden Komplexe reguläre Ausdrücke. Die Formel kann den Dateityp besser spezifizieren Kurz gesagt: Durch das Filtern der Änderungszeit jeder Datei können nur die Dateien kopiert werden, die kürzlich oder in einem bestimmten Zeitraum geändert oder hinzugefügt wurden. Diese Funktion ist in bestimmten Situationen nützlich.

Zusammenfassung

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

Eigentlich soll der Titel nur die Aufmerksamkeit aller auf sich ziehen. Dies ist nur ein kleines Programm und kein Virus.

Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnenIch möchte dieses Beispiel verwenden, um die leistungsstarke Fähigkeit von Python zur Verarbeitung von Dateien zu zeigen und die Begeisterung aller für das Lernen zu wecken.

Die obige Implementierung basiert auf macOS, Linux sollte das gleiche sein, und Windows kann mit geringfügigen Modifikationen auch erfolgreich sein. Die oben genannten Techniken dienen nur dem Lernen und dürfen nicht für andere Verhaltensweisen verwendet werden

Das obige ist der detaillierte Inhalt vonEs ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage