J'ai un petit problème avec ~ dans mes chemins.
Cet exemple de code crée des répertoires appelés "~ / some_dir" et je ne comprends pas que je voulais créer some_dir dans mon répertoire personnel.
my_dir = "~/some_dir"
if not os.path.exists(my_dir):
os.makedirs(my_dir)
Notez que ceci est sur un système basé sur Linux.
./
pour référencer votre répertoire actuel, et ainsi./~
supprimer le dossier~
dans le répertoire courant. Pour être plus sûr, il est plus facile de simplement fournir le chemin complet:rm -rf path/to/bad/dir/~
.rm \~
La conversion de
~/some_dir
en$HOME/some_dir
est appelée expansion tilde et est une fonctionnalité courante de l'interface utilisateur. Le système de fichiers n'en sait rien.En Python, cette fonctionnalité est implémentée par os.path.expanduser :
la source
~
. Ainsi, le raccourci vers la page d'accueil du shell est ambigu et mieux vaut éviter si vous le pouvez.The file system does not know anything about it.
+1C'est probablement parce que Python n'est pas Bash et ne suit pas les mêmes conventions. Vous pouvez utiliser ceci:
la source
Il créera un dossier sinon là, il ne créera pas de dossier.
REMARQUE : il créera également des dossiers dans le chemin (si nécessaire)
Cette fonction fonctionne comme
mkdir -p path/to/folder
la source
Vous pouvez maintenant le faire comme
Veuillez consulter https://stackoverflow.com/a/54190233/6799074 pour l'utilisation de
srblib.abs_path
la source