Erstellen einer relativen symlink in python ohne os.chdir()

Sagen, ich habe einen Pfad zu einer Datei:

/path/to/some/directory/file.ext

In python, ich möchte erstellen Sie einen symlink im gleichen Verzeichnis wie die Datei,,
Punkte auf die Datei. Ich möchte mit dieser:

/path/to/some/directory/symlink -> file.ext

Ich kann dies tun, ziemlich leicht mit os.chdir (), um die cd in das Verzeichnis und
erstellen Sie die symbolischen Links. Aber os.chdir() ist nicht thread-sicher, so möchte ich vermeiden
es zu benutzen. Unter der Annahme, dass das aktuelle Arbeitsverzeichnis des Prozesses ist nicht
das Verzeichnis mit der Datei (os.getcwd() != '/path/to/some/directory"),
was ist der beste Weg, dies zu tun?

Ich denke, ich könnte einen kaputten link in welchem Verzeichnis ich bin, dann
verschieben Sie Sie in das Verzeichnis mit der Datei:

import os, shutil
os.symlink('file.ext', 'symlink')
shutil.move('symlink', '/path/to/some/directory/.')

Gibt es einen besseren Weg, dies zu tun?

Hinweis, ich möchte nicht am Ende mit, ist dies:

/path/to/some/directory/symlink -> /path/to/some/directory/file.ext
Dies scheint furchtbar trivial: os.symlink('/tar/get/of/link', '/var/tmp/lnk') erstellen /var/tmp/lnk unabhängig davon, wo Sie jetzt sind, und unabhängig davon, ob /tar/get/of existiert, etc. Wenn Sie möchten, dass das Ziel nicht zu starten, mit / dann nur os.symlink('target', '/var/tmp/lnk').

InformationsquelleAutor Josh | 2012-03-20

Schreibe einen Kommentar