Ausblenden Ordner/ Datei mit Python
Gibt es eine Möglichkeit zum verstecken von Ordnern/Dateien mit Python?
Arbeite ich ein großes Projekt (ein Schwachstellen-scanner). Das Projekt schafft eine Vielzahl von Dateien und Ordnern. Daher die Frage, gibt es eine Möglichkeit, ein Skript, dass die Dateien und Ordner ausgeblendet?
- Könnten Sie näher erläutern, was meinst du mit "verstecken von Ordnern/Dateien'?
- -1: kein Betriebssystem angegeben.
- In windows können Sie die %APPDATA% env var-als einen Ort zum speichern von allen Dateien, die nicht wirklich für den Benutzer Verbrauch.
- Ich werfe eine enge Abstimmung unklar, was verlangt wird, denn diese Frage ist die Antwort auf zwei sehr unterschiedliche Fragen. Die erste Frage könnte so formuliert werden: "Wie mache ich meine Datei nicht mehr zu finden, die für andere Programme (mehr als nur ausblenden, indem Sie den Namen mit ein . auf nicht-Windows -.)". Die andere Frage könnte so formuliert werden wie "Wie Verstecke ich eine Datei unter Windows?". Diese Frage entweder geschlossen werden muss, da unklar ist, oder wir sollten, Bearbeiten Sie die Frage so, dass es klar ist das er eine dieser beiden Fragen, anstatt diese zweideutig zu sagen, was es jetzt tut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht wollen, zu gehen, um die Mühe mit pywin32 können Sie anrufen SetFileAttributes mit ctypes in der standard-Bibliothek.
path
muss ein unicode-string-Typ als dies ist die unicode-version von SetFileAttributes. Die Konstante 2 aus auf dieser Seite (FILE_ATTRIBUTE_HIDDEN). Ich kann mir vorstellen, dass es keinen Weg, um schöne Konstante Namen der ctypes, so dass Sie suchen müssen Sie selbst.ImportError: No module named 'ctypes.windll'
auf beiden Python 2.7 und 3.4. Das ist alles auf Windows.Sehen die Dokumentation.
Hier "versteckte Datei" bedeutet "Die Datei ist lesbar und schreibbar nur durch das erstellen von Benutzer-ID." d.h., die Bedeutung ist "verbergen Datei von einem anderen Benutzer".
Wenn dies für Windows:
http://code.activestate.com/recipes/303343/
Zusammenfassung:
import win32api, win32con, os
win32api.SetFileAttributes(filename,win32con.FILE_ATTRIBUTE_HIDDEN)
Wenn für Unix:
filename = "." + mit dem Namen
für die Datei-Adresse in Dateinamen verwenden r als Präfix, weil-Adresse enthält Schrägstriche zurück... zB r"c:...\file"
Wenn Sie können Ihre Daten in ein DBM-Format-Datei Sie haben nur einen einzigen Daten-Datei.
http://docs.python.org/library/anydbm.html
Anstelle der Dateinamen verwenden Sie keys in der db und den Inhalt der Datei gefunden werden könnten, die durch die Indizierung in der db.
Dies erfordert, dass Sie Ihre einzelnen Dateien sind klein genug, um problemlos voll geladen jedes mal, wenn Sie benötigen Zugriff auf einen Teil von Ihnen. Wenn Sie groß sind, dann betrachten Sie Sie geteilt haben und mit dem DBM-Schlüssel für den Zugriff auf Stücke von ihm. Zum Beispiel, wenn "example.txt" enthält viele Zeilen, und Sie wollen in der Lage sein, um auf jede Zeile einzeln könnten Sie speichern es als
db["example.txt/l1"]
...db["example.txt/l42"]
.ist .$mit dem Namen die Art von Sache, die Sie suchen?
es ist möglich (zumindest mit linux und ext-fs) zum öffnen/erstellen der Datei und halten Sie nur die Datei-handler für lese - /Schreibvorgänge von aktiven Prozess, aber kein anderer Prozeß kann sehen, die Datei aufgelistet, in Verzeichnissen oder wo auch immer.
es ist abhängig von Betriebssystem und Dateisystem, und es ist nur einfaches, wie:
sehr volatil Datei und ein bisschen tricky Lösung, aber funktioniert gut.