Wie öffne ich zuverlässig Dateien aus dem aktuellen Skriptverzeichnis?

Patricia Arquette
Freigeben: 2024-11-15 06:41:03
Original
162 Leute haben es durchsucht

How to Reliably Open Files from the Current Script Directory?

Öffnen von Dateien aus dem aktuellen Skriptverzeichnis: Ein umfassender Ansatz

Beim Öffnen von Dateien aus dem Verzeichnis des laufenden Skripts ist die Verwendung von entscheidender Bedeutung die richtige Technik, um Fehler zu vermeiden. Die Verwendung von open("Some file.txt", "r") mag zunächst unkompliziert erscheinen, kann jedoch zu Problemen führen, wenn das Skript unter Windows durch Doppelklicken gestartet wird.

Um dieses Problem zu beheben, gibt es eine häufige Vorgehensweise Der Ansatz besteht darin, os.path.join(sys.path[0], „Some file.txt“) zu verwenden, um den Dateipfad anzugeben. Während dies die meiste Zeit funktioniert, kann es in bestimmten Szenarien fehlschlagen.

Alternativen erkunden:

  • os.getcwd() und os. path.abspath(''): Diese Funktionen stellen das „aktuelle Arbeitsverzeichnis“ bereit, das vom Skript abweichen kann Verzeichnis.
  • os.path.dirname(sys.argv[0]) und os.path.dirname(__file__): Sie rufen den Pfad ab, der zum Aufrufen des Skripts verwendet wird. Dies kann sein relativ oder leer. Darüber hinaus ist __file__ in IDLE oder PythonWin nicht verfügbar.
  • sys.path[0] und os.path.abspath(os.path.dirname(sys.argv[0])): Diese scheinen das Skriptverzeichnis zurückzugeben, aber ihre Äquivalenz ist ungewiss.

Unter Berücksichtigung des Inhalts Modul:

Das Problem kann weiter verfeinert werden, indem Dateien im selben Verzeichnis wie das enthaltende Modul geöffnet werden. Herkömmliche Techniken erfüllen diesen Bedarf möglicherweise nicht ausreichend.

Zuverlässige Lösung:

Eine absolut zuverlässige Lösung ist die Verwendung des folgenden Codes:

__location__ = os.path.realpath(
    os.path.join(os.getcwd(), os.path.dirname(__file__)))
Nach dem Login kopieren

Diese Zeile stellt sicher, dass das Skriptverzeichnis unabhängig von der Startmethode oder Plattform korrekt abgerufen wird. Um Dateien in diesem Verzeichnis zu öffnen, verwenden Sie einfach:

f = open(os.path.join(__location__, 'bundled-resource.jpg'))
Nach dem Login kopieren

Dieser Ansatz hat sich bei der Bündelung von Ressourcen mit Django-Anwendungen sowohl unter Windows als auch unter Linux als effektiv erwiesen.

Das obige ist der detaillierte Inhalt vonWie öffne ich zuverlässig Dateien aus dem aktuellen Skriptverzeichnis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage