Risolto Aiuto script python

JokerHack22

Utente Silver
1 Agosto 2021
63
30
4
57
Ciao ragazzi, mi servirebbe un aiuto. Io vorrei creare un registro che mi conti le entrate e le uscite dei miei soldi.

Contenuto=("8")
File=open("nomefile.txt","w")
File.write(Contenuto)


Contenuto1=("6)
File=open("nomefile1.txt","w")
File.write(Contenuto1)
File.close()
D=(int("nomefile.txt"+"nomefile1.txt"))
Print(D)
Ok, questo è il codice, e il mio problema è che non riesco a far sommare i contenuti dei 2 file nomefile.txt + nomefile1.txt perché sono 2 stringhe mi sapreste aiutare. Grazie
 
Ciao! :)

L'errore che stai commettendo è di sommare come stringhe i nomi dei file e non i valori che hai inserito dentro. Guarda lo script sotto:
Python:
# Leggi il file
f = open("nomefile1.txt", "r")
values = f.readlines()
f.close()

# Seleziona il valore desiderato
num = int(values[0].replace("\n", ""))

Con questo script leggi il contenuto del file (ritornato come una lista) e dal contenuto estrai il primo valore, rimuovi "\n" presente alla fine di ogni riga e infine lo trasformi in int. Fai le medesime operazioni per il secondo valore che vuoi estrarre e dovresti essere apposto. Ti consiglio di usare un context manager e di creare una funzione per leggere il contenuto del file ed estrarre il valore desiderato.

Mi chiedo non ti converrebbe inserire tutti i valori in un unico file? Sarebbe molto più efficiente.
 
Riguardo la prima, riguardo la scrittura delle informazioni nei due file, parte ho preso esattamente il tuo codice
Python:
# Scrivi il primo numero nel primo file
value = 8
f = open("nomefile.txt")
f.write(value)

# Scrivi anche nel secondo
value = 6
f = open("nomefile1.txt")
f.write(value)

def read_value(filname: str, index: int) -> int:
    """ Fuzione per leggere valore specifico da un file """
    # Leggi file e prendi dati all'interno
    with open(filename, "r") as f:
        values = f.readlines()
    
    # Seleziona il valore desiderato
    num = int(values[index].replace("\n", ""))
    return num

# Estrai valori e mostra la somma
value1 = read_value("nomefile.txt", 0)
value2 = read_value("nomefile1.txt", 0)
print(value1 + value2)
Possibili errori a parte questo dovrebbe essere il codice che ti interessa. Ripeto, secondo me non ti conviene scrivere i valori in file diversi se non ne hai l'obbligo. Fammi sapere :)
 
Ultima modifica:
print("ENTRATE")
entrate=(str(input("--> ")))
with open("entrate.txt","w") as f:
f.write(entrate)


def read_value(filname: str, index: int) -> int:
with open(filename, "r") as f:
values = f.readlines()

num = int(values[index].replace("\n", ""))
return num

value1 = read_value("entrate.txt", 0)
value2 = read_value("saldo.txt", 0)
somma=(value1 + value2)
print(somma)
def read(index:int,filename:str)-> str:
with open(index,"r") as f:
values=f.readlines()

num=str(values[filename].replace("\n",""))
return num

somma=read

with open("saldo.txt") as f:
f.write(somma)
 
Ciao ragazzi, volevo sapere se potevate agliutarmi a capire come fare per convertire la variabile somma in una stringa in modo da salvare il risultato di value1+value2 sul file saldo.txt. Grazie
 
Ultima modifica:
Ciao ragazzi, volevo sapere se potevate agliutarmi a capire come fare per convertire la variabile somma in una stringa in modo da salvare il risultato di value1+value2 sul file saldo.txt. Grazie
Ciao, innanzitutto devi indentare il codice, altrimenti diventa complicato capire cosa vuoi fare. Poi, quando usi la funzione input(), non c'è bisogno di anteporre la funzione str() perché già di suo input() acquisisce sotto forma di stringa. Infine, per convertire la tua somma in un tipo stringa, basta usare str(somma). Credo, ma forse sbaglio, che ci sia qualche errore nel tuo codice, per esempio: la riga in cui scrivi "somma = read"
che significato ha?
 
Ciao, innanzitutto devi indentare il codice, altrimenti diventa complicato capire cosa vuoi fare. Poi, quando usi la funzione input(), non c'è bisogno di anteporre la funzione str() perché già di suo input() acquisisce sotto forma di stringa. Infine, per convertire la tua somma in un tipo stringa, basta usare str(somma). Credo, ma forse sbaglio, che ci sia qualche errore nel tuo codice, per esempio: la riga in cui scrivi "somma = read"
che significato ha?
Ciao, ok. La riga "somma=read" dovrebbe avere la funzione di convertire la somma di value1 + value2 in str per salvare il risultato in un file ma mi da errore. Se gentilmente mi potresti dare una mano su questa riga di codice perché sto impazzendo. Grazie
 
Ciao, ok. La riga "somma=read" dovrebbe avere la funzione di convertire la somma di value1 + value2 in str per salvare il risultato in un file ma mi da errore. Se gentilmente mi potresti dare una mano su questa riga di codice perché sto impazzendo. Grazie
Nel tuo codice al posto di scrivere "somma = (valore1 + valore2)", hai provato a fare "somma = str(valore1 + valore2)" e a cancellare la riga "somma = read" ? Non so lavorare con i file in python, quindi non ti so dire se hai sbagliato qualcosa relativa alle funzioni, però prova e fammi sapere XD
 
Ciao ragazzi, volevo sapere se potevate agliutarmi a capire come fare per convertire la variabile somma in una stringa in modo da salvare il risultato di value1+value2 sul file saldo.txt. Grazie
Basta usare la funzione built-in str():
Python:
# Convertire la var somma_int (int) in una stringa
somma_str = str(somma_int)

# ... Salva la variabile in un file
 
  • Mi piace
Reazioni: JokerHack22