Ich habe ein kleines Problem mit ~ auf meinen Wegen.
Dieses Codebeispiel erstellt einige Verzeichnisse mit dem Namen "~ / some_dir" und versteht nicht, dass ich some_dir in meinem Home-Verzeichnis erstellen wollte.
my_dir = "~/some_dir"
if not os.path.exists(my_dir):
os.makedirs(my_dir)
Beachten Sie, dass dies auf einem Linux-basierten System ist.
./
um auf Ihr aktuelles Verzeichnis zu verweisen und so./~
den Ordner~
im aktuellen Verzeichnis zu entfernen . Um sicherer zu sein, ist es am einfachsten, einfach den vollständigen Pfad anzugeben :rm -rf path/to/bad/dir/~
.rm \~
Die Konvertierung von
~/some_dir
in$HOME/some_dir
wird als Tilde-Erweiterung bezeichnet und ist eine allgemeine Funktion der Benutzeroberfläche. Das Dateisystem weiß nichts darüber.In Python wird diese Funktion von os.path.expanduser implementiert :
quelle
~
. Die Shell-Home-Verknüpfung ist also mehrdeutig und wird am besten vermieden, wenn Sie können.The file system does not know anything about it.
+1Das liegt wahrscheinlich daran, dass Python nicht Bash ist und nicht denselben Konventionen folgt. Sie können dies verwenden:
quelle
Es wird ein Ordner erstellt, wenn es nicht vorhanden ist. Andernfalls wird kein Ordner erstellt.
HINWEIS : Außerdem werden Ordner im Pfad erstellt (falls erforderlich).
Diese Funktion funktioniert wie
mkdir -p path/to/folder
quelle
Sie können es jetzt wie machen
Informationen zur Verwendung von finden Sie unter https://stackoverflow.com/a/54190233/6799074
srblib.abs_path
quelle