Profilo di sandrin81

Nome sandrin81
Indirizzo email n/a
Messaggi2
  • Re: Aprire-elaborare e salvare file
    Forum >> Principianti
    Grazie mille,
    ho fatto un passo avanti, ora leggo i file nella directory, e ho dettato una variabile da usare per il come contatore per il ciclo for (che devo ancora scrivere)




    Non sto capendo ancora dove sbaglio quando voglio scrivere il file in output..




    import os
    
    #define the paths
    
    in_path = "/Users/alessandro/Documents/Phyton/in/"
    out_path = "/Users/alessandro/Documents/Phyton/out/"
    
    #define start X
    x = 0.64
    
    #define start X with a prompt
    #x = float(input("inserisci X: "))
    
    #define header
    header = ("UNITS = m")
    
    #Read and sort the file 
    files = ( next( os.walk(in_path) )2 )
    files.sort()
    
    #Number of files in folder
    nr_file = len(files)
    #print(" ".join(files))
    
    
    #open file
    with open(in_path + files0) as file:
        for line in file:
            data = line.strip().split(" ")
            if (data0) == "UNITS":
                continue
            data1 = str(float(data1) + x)
            print(" ".join(data))
           
            
    #### problmema nell'output scrove una sola riga.    
    #with open(out_path + files0, "a") as file:
        
    #        file.write(header + "\n")
          
            #file.write(" ".join(data))
     
    #file.close()   


  • Aprire-elaborare e salvare file
    Forum >> Principianti
    Ciao a tutti, sto cercando di scrivere un programma per fare una semplice operazione cioè aprire tutti i file di testo di una cartella, aggiungere incrementalmente un valore ad un campo (es: 0.64 al primo file poi + 0.64 al secondo per avere 1.28 e cosi via). Al momento sono riuscito a fare l'operazione su un unico file. Mi sono bloccato nella scrittura, col codice qui sotto scrivo una sola riga.

    #define the paths
    in_path = "/Users/alessandro/Documents/Phyton/"
    out_path = "/Users/alessandro/Documents/Phyton/out/"
    
    #define start X
    x = 0.64
    
    #define start X with a prompt
    #x = float(input("inserisci X: "))
    
    #define header
    header = ("UNITS = m")
    
    #open file
    with open(in_path + "001file.txt") as file:
        for line in file:
            data = line.strip().split(" ")
            if (data0) == "UNITS":
                continue
            data1 = str(float(data1) + x)
            print(" ".join(data))
    
    
      
        
    with open(out_path + "File1.txt", "a") as file:
        
            file.write(header + "\n")
            file.write(" ".join(data + "\n"))
     
    file.close()  

    UNITS = m
    1 0.000000000 0.000000000 0.00000000
    198 0.000000000 16.00000000 0.00000000
    
    il risultato che vorrei per il primo file elaborato per ogni file della cartella (la colonna 1 e la 3 non sono fisse) - i successivi andranno ad incrementare 0.64 > 1.28 ecc ecc..
    UNITS = m
    1 0.640000000 0.000000000 0.00000000
    198 0.640000000 16.00000000 0.00000000
    
    suggerimenti? lo so che è banale ma non ne sto venendo fuori..

    grazie mille


    --- Ultima modifica di sandrin81 in data 2018-12-16 17:26:57 ---