J'ai un petit problème avec ~ dans mes chemins.
Cet exemple de code crée des répertoires appelés "~/some_dir" et ne comprend pas que je veuille 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.
Vous devez développer le tilde manuellement:
my_dir = os.path.expanduser('~/some_dir')
La conversion de ~/some_dir
en $HOME/some_dir
s'appelle tilde expansion et constitue une fonctionnalité d'interface utilisateur commune. Le système de fichiers ne sait rien à ce sujet.
En Python, cette fonctionnalité est implémentée par os.path.expanduser :
my_dir = os.path.expanduser("~/some_dir")
C'est probablement parce que Python n'est pas Bash et ne suit pas les mêmes conventions. Vous pouvez utiliser ceci:
homedir = os.path.expanduser('~')
from srblib import verify_folder
verify_folder('path/to/folder')
Il créera un dossier sinon il ne créera pas de dossier.
NOTE: il créera également des dossiers dans le chemin (si nécessaire)
srb@srb-pc:~/hello$ ls
srb@srb-pc:~/hello$ python3
>>> from srblib import verify_folder
>>> verify_folder('~/hello/A/B')
>>> exit()
srb@srb-pc:~/hello$ ls
A
srb@srb-pc:~/hello$ ls A
B
srb@srb-pc:~/hello$
Cette fonction fonctionne comme mkdir -p path/to/folder
Vous pouvez maintenant le faire comme
from srbib import abs_path
my_dir = abs_path('~/path/to/dir')
if not os.path.exists(my_dir):
os.makedirs(my_dir)
Veuillez vous référer à https://stackoverflow.com/a/54190233/6799074 pour l'utilisation de srblib.abs_path