Forum >> Programmazione Python >> Files e Directory >> [RISOLTO]Scrivere su più file di testo

Pagina: 1 2 Avanti

Buongiorno, scusate ma non sono espertissimo di python.

Vorrei sapere come posso scrivere la stessa stringa su più file in una stessa directory.




Spiego meglio...

Ho una directory che contiene un numero imprecisato di file (numero in costante aumento), tutti con la stessa estensione (.txt) e nomi differenti ovviamente.

Tramite python, vorrei scrivere per esempio la parola 'OK!' in tutti quei file di testo (indipendentemente dal loro nome) in un unico colpo, eliminando l'eventuale testo contenuto al loro interno.




È fattibile con python e se si in che modo?

Ciclo while.... for.... o cosa va usato?

Grazie a tutti.




P.S.: sto usando python 3.6



--- Ultima modifica di xnotar in data 2019-04-18 21:38:42 ---
È fattibile con python e se si in che modo?

Ciclo while.... for.... o cosa va usato?

Ciao caro, certo che è fattibile, ed anche in modi diversi.

Uno, il più semplice, ti permette una volta impostato il percorso corretto, di utilizzare il modulo os, che contiene gli strumenti per processare correttamente tutti i file contenuti.

Sì, un ciclo for è consigliato in questo caso.

Tienici aggiornati sui tuoi progressi.

Cya

Stamattina ho provato con il "for," ma non ho ben capito come fare.



E che cosa hai provato?
https://leanpub.com/capirewxpython : Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com : Python in Windows, il mio blog e le mie guide
Stamattina ho provato con il "for," ma non ho ben capito come fare.
Mhhh, forse se metti un po' di codice capiamo che cosa stai facendo.

Cya


Ora sono al lavoro. Domani posto qualche paciugata che ho fatto.
Ora sono al lavoro. Domani posto qualche paciugata che ho fatto.

Allora...

Di solito scrivo i file di testo così


file = open('/percorso/file/nome_file.txt', 'w')
file.write('testo da scrivere')
file.close()



Ora questo mi scrive il file contenuto nel percorso, ma se ho più file e voglio scrivere la stessa frase su tutti non posso scrivere questo:

file = open('/percorso/file/*.txt', 'w')
Dunque ho tentato con il for, ma senza successo perché per la verità non so come farlo.

Ho improvvisato una stupidata del genere ma subito arenato perché mi rendo conto che non posso usare una roba simile....





percorso = '/percorso/dei/files'
for txt in percorso:
Dunque se qualche buona anima mi aiutasse, ne sarei molto grato :embarrassed:

Sì ma questo porta all'inevitabile domanda: sai come si usa "for"? Cioè, almeno quello che c'è nel tutorial al riguardo https://docs.python.org/3/tutorial/controlflow.html#for-statements lo capisci?
https://leanpub.com/capirewxpython : Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com : Python in Windows, il mio blog e le mie guide
Sì ma questo porta all'inevitabile domanda: sai come si usa "for"? Cioè, almeno quello che c'è nel tutorial al riguardo https://docs.python.org/3/tutorial/controlflow.html#for-statements lo capisci?

Molto male perché, ripeto, non sono esperto e sto un po' paciugando ma con scarsi risultati.


Pensavo di poter usare il 'for' con open() ma mi sono reso conto che non è possibile (per quel che ne so) perché mi rimarrebbe il problema di come far eseguire l'operazione per ogni file contenuto nella directory. Ecco perché chiedevo se fosse quello il modo giusto per ottenere ciò che mi serve oppure no ed eventualmente se qualcuno mi potesse spiegare e far capire come usare il ciclo 'for'.

Beh non è questione di essere "esperti" per usare for, sono proprio le basi. Probabilmente la cosa migliore sarebbe interrompere quello che stai cercando di fare e prenderti un po' di tempo per studiare Python. C'è una discreta sezione di documentazione qui nel sito, dopo di che il mio consiglio resta sempre di scendere alla Feltrinelli all'angolo e raccattare una copia del Lutz.
https://leanpub.com/capirewxpython : Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com : Python in Windows, il mio blog e le mie guide


Pagina: 1 2 Avanti



Esegui il login per scrivere una risposta.