|
|
|
|
Strumenti |
28-01-2022, 18:20 | #1 |
Junior Member
Iscritto dal: Nov 2019
Messaggi: 9
|
Controllare esistenza directory python
Salve ragazzi.
Ho un problema banale che tuttavia non riesco a risolvere. Devo creare una directory e delle sottodirectory (una per ogni utente) basandomi su una lista di utenti che ho in un file json. in questo file gli utenti sono ripetuti. per creare ho usato os.mkdir(), e fin qui tutto normale, però quando vado a controllare all'interno del for se la sottocartella da creare esiste già (lo faccio per evitare di fare un mkdir su una cartella già esistente che mi genererebbe un'eccezione) tramite il comando isdir(), questo mi resituisce valori falsi nonostante la cartella esista già. Ho controllato la documentazione della funzione e viene specificato che la funzione resistuisce falso anche nel caso in cui non riesca effettivamente a controllare a causa di permessi non sufficienti, ma anche settando permessi completi usando chmod non riesco a far funzionare correttamente il tutto. Qualcuno sa aiutarmi? |
29-01-2022, 08:50 | #2 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3593
|
e se fai un mkdir su una directory esistente, cosa succede?
|
30-01-2022, 13:05 | #3 |
Junior Member
Iscritto dal: Nov 2019
Messaggi: 9
|
ovviamente genera una eccezione visto che la cartella che già esiste
|
30-01-2022, 14:11 | #4 |
Senior Member
Iscritto dal: May 2005
Messaggi: 8681
|
E non puoi gestire l'eccezione?
Codice:
try: os.mkdir(dirname) except OSError as e: print(e) Codice:
errno.EACCES Permission denied https://docs.python.org/3/library/errno.html Ma in questa cartella puoi effettivamente scrivere visto che non riesci nemmeno a verificare se esiste o no? Controlla bene i permessi, chmod e chown
__________________
. Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock The real me is no match for the legend . Ultima modifica di x_Master_x : 30-01-2022 alle 14:15. |
30-01-2022, 17:53 | #5 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3593
|
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:12.