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

WBOY
Freigeben: 2023-04-14 22:58:08
nach vorne
1769 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 feststellen, dass es darunter gemountet ist Das heißt, wir müssen dieses Verzeichnis nur zu einem festgelegten Zeitpunkt scannen. Wenn in diesem Verzeichnis ein neuer Ordner angezeigt wird, wurde wahrscheinlich ein USB-Stick eingesteckt.

Mein Design ist so: 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 es zusammenzustellen:) 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?

Lassen Sie uns ein Beispiel geben.

Ich habe den Testwalk-Ordner in einem bestimmten Verzeichnis erstellt. Es gibt drei Dateien file123.txt und drei Ordner file4.txt und Ordner4 in Ordner1

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

Jetzt testen wir es.

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 nach unten durchsucht. „Verzeichnisse einzeln anzeigen“ B. 3M, kopieren Sie es einfach nach Hause und verwerfen Sie es, wenn es größer als der Wert ist.

Shutil-ModulEs 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 Tools in Shutil, die ich nicht verwenden werde gehen Sie hier ins Detail. Es ist beängstigend, darüber nachzudenken, den USB-Stick anzuschließen und mit der Ausführung des Python-Codes zu beginnen

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 manuell eine Funktion schreiben in eine leicht lesbare Form umgewandelt.

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 eine Dateigröße von weniger als 3 MB auswählen, 3M = 3 * 1024 kB = 3 * 1024 * 1024 Byte.

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

In Kombination mit Shutil.copy2 können wir die Datei der ausgewählten Größe kopieren unser Zielordner

So geben Sie den Dateityp an

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

Es gibt viele Inhalte zu regulären Ausdrücken, und in „Python Core Programming“ ist ihnen ein ganzes Kapitel gewidmet, sodass wir nicht näher darauf eingehen.

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

Vergessen Sie nicht, re zu importieren

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

Verwenden Sie komplexere reguläre Ausdrücke, um die Datei besser zu spezifizieren Typ

Dateien nach Änderungszeit filtern

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

Zu diesem Zeitpunkt habe ich im Verzeichnis eine Datei mit dem Namen newfile erstellt

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

Kurz gesagt, durch Filtern der Änderungszeit jeder Datei kann nur die aktuellste kopiert werden Dateien oder Dateien, die in einem bestimmten Zeitraum geändert oder hinzugefügt wurden, ist diese Funktion in bestimmten Situationen nützlich.

Zusammenfassung

Eigentlich handelt es sich dabei nur um ein kleines Programm, nicht um einen ausgefeilten Schadcode. Anhand dieses Beispiels möchte ich die leistungsstarke Fähigkeit von Python zur Dateiverarbeitung demonstrieren und die Begeisterung aller für das Lernen wecken. Die oben genannten Implementierungen basieren alle auf MacOS und sollten mit geringfügigen Änderungen auch unter Windows erfolgreich sein. Die oben genannten Techniken dienen nur dem Lernen und sollten nicht für andere Aktivitäten 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