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/. Wenn es weitere Ordner gibt, kopieren Sie es einfach nach ein anderer Ordner.
Wie der Titel zeigt, haben wir wirklich nur 10 Zeilen (eigentlich 11 Zeilen, das Ganze ausmachen:) 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 und .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#🎜 🎜##🎜 🎜#
Jetzt testen wir es
root speichert den aktuellen Speicherort, es werden alle Ordner unter /testwalk/ gespeichert als Stammverzeichnisse verwendet, nach unten durchsuchen Dateien einzeln anzeigen
Okay, wir müssen jetzt den USB-Ordner rekursieren, alle Dateien finden und die Größe überprüfen. Wenn sie kleiner ist als Kopieren Sie es beispielsweise nach Hause, wenn es größer ist, entsorgen Sie es.
shutil module
os.path.getsize() bestimmt die Größe
os.path.getsize (Dateiname) gibt einen Wert in Bytes zurück, wenn er zur Überprüfung der Dateigröße verwendet wird, wir Sie müssen eine Funktion manuell schreiben, um sie in eine leicht lesbare Form umzuwandeln.Hier müssen wir nur die Dateigröße kleiner als 3M auswählen, 3M = 3 * 1024kB = 3 * 1024*1024byte#🎜 🎜 #
In Kombination mit Shutil.copy2 können Sie Dateien ausgewählter Größe in unseren Zielordner kopierenSo geben Sie den Dateityp an
# 🎜🎜#Hier brauchen wir reguläre Ausdrücke, die uns helfen. Es gibt viele Inhalte zu regulären Ausdrücken, denen in „Python Core Programming“ ein ganzes Kapitel gewidmet ist, 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, re zu importieren#🎜 🎜##🎜 🎜#
Verwenden Sie komplexere reguläre Ausdrücke, um Dateitypen besser zu spezifizierenDateien nach Änderungszeit filtern # 🎜🎜#Zu diesem Zeitpunkt habe ich eine Datei namens newfile
erstellt
Das obige ist der detaillierte Inhalt vonSo schließen Sie ein USB-Flash-Laufwerk an und beginnen mit der Ausführung von Python-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!