Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [PYTHON] Errore su controllo esistenza directory

    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?

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Prova a mettere un po’ di codice, magari si capisce meglio cosa stai facendo

  3. #3
    Vi posto l'esempio minimo di codice che provo a eseguire
    for ut in range(len(utenti)):
    path = "dataset/" + str(utenti[ut])
    os.path.isdir(path) == "false":
    os.mkdir(path) # questo va indentato




    la directory principale è la cartella dataset che si trova all'iinterno del path del progetto, da cui prendo il path relativo insomma.
    il punto è che se eseguo cosi, NON crea la cartella, come se la cartella esistesse. ho provato a dare il os.chmod() con permessi di lettura scrittura e esecuzione alla cartella parent (dataset) cosicchè, se le riminiscenze del corso di sistemi operativi non mi ingannano, dovrei avere gli stessi permessi per tutto il subtree, ma non ottengo comunque il risultato sperato.


    Ho temporaneamente corretto utilizzando un pessimo try except pass, per andare un attimo avanti con il progetto, perchè mi ci stavo bloccando, ma è una pratica scorretta che preferirei evitare. in più ora sono curioso di capire il perchè di questo comportamento anomalo

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    os.path.isdir(path) == "false"

    A parte che manca if davanti, l’istruzione corretta è
    os.path.isdir(path) == False

    io scriverei
    codice:
     if not os.path.isdir(path):
        # crei la directory 
    


    sinceramente, riscriverei anche il for con
    codice:
    for ut in utenti:
        # resto del codice
    Ultima modifica di clasku; 30-01-2022 a 19:54

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.