+ Rispondi al Thread
Pagina 2 di 3 primaprima 123 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21

Discussione: Stampare lista file di una directory

  1. #11
    L'avatar di crash.!
    crash.! non è in linea Novello
    Post
    29
    Quote Originariamente inviato da Master85 Visualizza il messaggio
    Sarebbe molto utile... Pubblica solo la porzione di codice interessata.
    Ecco a te:

    codice:
    def search(l):                                                                              
                                                                                                
        lv2=[]
        lv4=[]
        
        for elemento in l:                                                                      
            if elemento.find('v2.')!=-1:                                                         
                lv2.append(elemento.lower())                                                    
            
            else:
                if elemento.find('v4.')!=-1:                                                     
                    lv4.append(elemento.lower())                                                
    
        lv2.sort()
        lv4.sort()
        
        return lv2,lv4
    
    def setaccio(lv2):
    
        for i in lv2:
            l1=os.listdir("C:\\WINDOWS\MICROSOFT.NET\Framework\", listav2)
        #for i in lv4:
            #l2=os.access("C:\\WINDOWS\MICROSOFT.NET\Framework\\",listav4)
        return l1
            
    
    # INIZIO PROGRAMMMA
    
    import os
    
    l=os.access("C:\\WINDOWS\MICROSOFT.NET\Framework",os.F_OK)                                         
    
    print (l)
    
    l=os.listdir("C:\\WINDOWS\MICROSOFT.NET\Framework")  
    
    listav2,listav4 = search(l)                                                                 
    
    
    #print("La lista contenente le parole è la seguente: ",l)                                    
    print("La ricerca di v2 ha prodotto il seguente risultato: ",listav2)                       
    print("La ricerca di v4 ha prodotto il seguente risultato: ",listav4)                       
    #print (setaccio(listav2))
    Ultima modifica di Master85; 19-02-2012 01:44 

  2. #12
    Post
    4,740
    Blogs
    12
    Premetto che queste due righe di codice:

    codice:
    ...
    l=os.access("C:\\WINDOWS\MICROSOFT.NET\Framework",os.F_OK)                                         
    
    print (l)
    ...
    Sono prive di senso nel tuo programma! Ti invito per l'ennessima volta, di leggere bene le documentazioni di ciascun metodo, prima di piazzare codice a caso.

    Tornando al tuo "problema"... Una volta ottenute le due liste lv2 e lv4, rispettivamente contenenti l'insieme delle directory (assumo che siano tutte directory dal momento che non hai specificato l'eventuale presenza di file) che iniziano con 'v2.' e 'v4.', intendi stampare a video l'elenco dei files contenuti in ciascuna di queste directory?

    Se è ciò che intendi realizzare, non ri resta che chiamare un os.listdir(path) per ciascuno degli elementi contenuti nelle liste, laddove path non sarà altro che la concatenazione tra il percorso principale - "C:\\WINDOWS\MICROSOFT.NET\Framework" - e l'elemento correntemente ciclato.

  3. #13
    L'avatar di crash.!
    crash.! non è in linea Novello
    Post
    29
    Quote Originariamente inviato da Master85 Visualizza il messaggio
    Premetto che queste due righe di codice:

    codice:
    ...
    l=os.access("C:\\WINDOWS\MICROSOFT.NET\Framework",os.F_OK)                                         
    
    print (l)
    ...
    Sono prive di senso nel tuo programma! Ti invito per l'ennessima volta, di leggere bene le documentazioni di ciascun metodo, prima di piazzare codice a caso.

    Tornando al tuo "problema"... Una volta ottenute le due liste lv2 e lv4, rispettivamente contenenti l'insieme delle directory (assumo che siano tutte directory dal momento che non hai specificato l'eventuale presenza di file) che iniziano con 'v2.' e 'v4.', intendi stampare a video l'elenco dei files contenuti in ciascuna di queste directory?

    Se è ciò che intendi realizzare, non ri resta che chiamare un os.listdir(path) per ciascuno degli elementi contenuti nelle liste, laddove path non sarà altro che la concatenazione tra il percorso principale - "C:\\WINDOWS\MICROSOFT.NET\Framework" - e l'elemento correntemente ciclato.
    Quelle due righe di codice mi sono state chieste di metterle
    In queste cartelle che iniziano con il nome di "v2." e "v4." sono presenti dei file e devo stampare a video l'elenco dei files che la contengono

  4. #14
    Post
    4,740
    Blogs
    12
    Quote Originariamente inviato da crash.! Visualizza il messaggio
    Quelle due righe di codice mi sono state chieste di metterle
    Così a caso?

    Quote Originariamente inviato da crash.! Visualizza il messaggio
    In queste cartelle che iniziano con il nome di "v2." e "v4." sono presenti dei file e devo stampare a video l'elenco dei files che la contengono
    Si... Ok... Ma almeno ti sei degnato di leggere la mia precedente risposta? O ti aspetti che qualcuno ti metta a disposizione il codice pronto (tra l'altro già fatto in questo thread)?

  5. #15
    L'avatar di crash.!
    crash.! non è in linea Novello
    Post
    29
    Quote Originariamente inviato da Master85 Visualizza il messaggio
    Così a caso?


    Si... Ok... Ma almeno ti sei degnato di leggere la mia precedente risposta? O ti aspetti che qualcuno ti metta a disposizione il codice pronto (tra l'altro già fatto in questo thread)?
    Sì, così a casa
    La tua risposta l'ho letta. Dato che non avevo avuto tempo di provare il tuo suggerimento ho confermato quello che mi avevi chiesto intanto
    Quando vado a richiamare la funzione adesso mi dice "lv2" non è definito

    print(setaccio(lv2))
    NameError: name 'lv2' is not defined

  6. #16
    Post
    4,740
    Blogs
    12
    Quote Originariamente inviato da crash.! Visualizza il messaggio
    Quando vado a richiamare la funzione adesso mi dice "lv2" non è definito
    E non è un caso.... Dato che lv2 non è definito da nessuna parte! Nel tuo codice chiami:

    codice:
    ...
    print (setaccio(listav2))
    ...
    In quel caso listav2 è definita, quindi non dovrebbe restituirti alcun messaggio di errore.

    In ogni caso, se continui a porre questi errori così grossolani e banali, non sarà un forum a fornirti soluzione. A te occorre una buona dose di studio su un libro di programmazione e sul Python nello specifico.

  7. #17
    L'avatar di crash.!
    crash.! non è in linea Novello
    Post
    29
    Quote Originariamente inviato da Master85 Visualizza il messaggio
    E non è un caso.... Dato che lv2 non è definito da nessuna parte! Nel tuo codice chiami:

    codice:
    ...
    print (setaccio(listav2))
    ...
    In quel caso listav2 è definita, quindi non dovrebbe restituirti alcun messaggio di errore.

    In ogni caso, se continui a porre questi errori così grossolani e banali, non sarà un forum a fornirti soluzione. A te occorre una buona dose di studio su un libro di programmazione e sul Python nello specifico.
    Veramente mi da errore anche con "listav2"

    l1 = os.listdir("C:\\WINDOWS\MICROSOFT.NET\Framework" - listav2)
    TypeError: unsupported operand type(s) for -: 'str' and 'list'
    Io Informatica la studio a scuola e non ho qualche libro sul Python. Ho un paio di tutoriali, ma spesso non mi aiutano

  8. #18
    esattore non è in linea Novello
    Post
    3
    Quote Originariamente inviato da crash.! Visualizza il messaggio
    Veramente mi da errore anche con "listav2"

    codice:
    l1 = os.listdir("C:\\WINDOWS\MICROSOFT.NET\Framework" - listav2)
    TypeError: unsupported operand type(s) for -: 'str' and 'list'
    Scritta in quel modo passi alla os.listdir 2 argomenti, mentre la funzione ne accetta uno solo.
    Ciao

  9. #19
    Post
    4,740
    Blogs
    12
    Quote Originariamente inviato da esattore Visualizza il messaggio
    Scritta in quel modo passi alla os.listdir 2 argomenti, mentre la funzione ne accetta uno solo.
    In realtà, scritta in quel modo sta cercando di chiamare l'operatore "-" su due operandi, rispettivamente di tipo list e str. Cosa vuoi che gli restituisca, se non un errore!

  10. #20
    L'avatar di crash.!
    crash.! non è in linea Novello
    Post
    29
    E allora siamo tornati allo stesso problema iniziale
    Il mio problema è che non so come scrivere tutto in un argomento!

+ Rispondi al Thread
Pagina 2 di 3 primaprima 123 ultimoultimo

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