Come posso aprire un file, Stud.txt, e quindi sostituire qualsiasi occorrenza di "A" con "Arancione"?Sostituisci stringa all'interno del contenuto del file
risposta
with open("Stud.txt", "rt") as fin:
with open("out.txt", "wt") as fout:
for line in fin:
fout.write(line.replace('A', 'Orange'))
@Blue - le linee guida per i compiti a casa dicono di non deviare le risposte per le domande sui compiti. Soprattutto quelli che sono probabilmente legittimi. +1 per il modo giusto per farlo. – katrielalex
"t" per la modalità testo è solo Python 3. Inoltre, fornisci un gestore di contesto per il tuo file di output, ma non riesci a chiudere il file di input, il che sembra incoerente. –
@katrielalex: non ci sono downvote, semplicemente non ho votato. Ma dare risposte ai compiti è [non è il modo giusto per farlo] (http://meta.stackexchange.com/questions/10811/how-to-ask-and-answer-homework-questions) –
with open('Stud.txt','r') as f:
newlines = []
for line in f.readlines():
newlines.append(line.replace('A', 'Orange'))
with open('Stud.txt', 'w') as f:
for line in newlines:
f.write(line)
Qualcosa di simile
file = open('Stud.txt')
contents = file.read()
replaced_contents = contents.replace('A', 'Orange')
<do stuff with the result>
modo più semplice è quello di farlo con le espressioni regolari, partendo dal presupposto che si desidera iterare su ogni riga del file (dove sarebbe stato memorizzato 'A') si ...
import re
input = file('C:\full_path\Stud.txt), 'r')
#when you try and write to a file with write permissions, it clears the file and writes only #what you tell it to the file. So we have to save the file first.
saved_input
for eachLine in input:
saved_input.append(eachLine)
#now we change entries with 'A' to 'Orange'
for i in range(0, len(old):
search = re.sub('A', 'Orange', saved_input[i])
if search is not None:
saved_input[i] = search
#now we open the file in write mode (clearing it) and writing saved_input back to it
input = file('C:\full_path\Stud.txt), 'w')
for each in saved_input:
input.write(each)
Se si desidera sostituire le stringhe nello stesso file, è necessario leggerne il contenuto in un locale variabile, chiuderlo e riaprirlo in scrittura:
sto usando the with statement in questo esempio, che chiude il file dopo il blocco with
termina - sia normalmente quando l'ultimo comando termina l'esecuzione, o da un'eccezione.
def inplace_change(filename, old_string, new_string):
# Safely read the input filename using 'with'
with open(filename) as f:
s = f.read()
if old_string not in s:
print '"{old_string}" not found in {filename}.'.format(**locals())
return
# Safely write the changed content, if found in the file
with open(filename, 'w') as f:
print 'Changing "{old_string}" to "{new_string}" in {filename}'.format(**locals())
s = s.replace(old_string, new_string)
f.write(s)
Vale la pena ricordare che se i nomi dei file erano diversi, avremmo potuto fare questo più elegantemente con un singolo with
dichiarazione.
Questa soluzione è migliore perché non si rinomina il file a differenza della risposta di cui sopra. –
Perché flush() immediatamente prima di close()? Mi auguro che close() faccia tutto il flush necessario. – ChrisPhoenix
@ChrisPhoenix [Correct] (http://stackoverflow.com/questions/2447143/does-close-imply-flush-in-python), possiamo usare 'with' e sbarazzarci di' close' e 'flush' . –
#!/usr/bin/python
with open(FileName) as f:
newText=f.read().replace('A', 'Orange')
with open(FileName, "w") as f:
f.write(newText)
Se siete su Linux e desidera solo per sostituire una parola che si può fare:
text.txt:
Hi, i am a dog and dog's are awesome, i love dogs! dog dog dogs!
Linux Command:
sed -i 's/dog/cat/g' test.txt
Uscita:
Hi, i am a cat and cat's are awesome, i love cats! cat cat cats!
originale del messaggio: https://askubuntu.com/questions/20414/find-and-replace-text-within-a-file-using-commands
- 1. Sostituisci il contenuto dinamico nel file XML
- 2. Eliminazione del contenuto del file android
- 3. Memorizzazione del contenuto del file nel DB
- 4. Eliminazione del contenuto del file di testo
- 5. Sostituzione del contenuto del file in PHP
- 6. espressione primaverile leggere il contenuto del file
- 7. Sostituisci percorso nella stringa PowerShell
- 8. javascript: dimensione del file scaricato diversa dalla lunghezza del contenuto
- 9. Trova e sostituisci stringa in un file
- 10. stringa IndexOf e Sostituisci
- 11. Download del file dall'URL in una stringa
- 12. Sostituisci tutte le occorrenze del gruppo
- 13. Leggere le modifiche del contenuto del file in .NET
- 14. Recupero del contenuto del file tramite FTPClient Java
- 15. per il contenuto aggiuntivo del file manifest.mf?
- 16. sendfile non copia il contenuto del file
- 17. Python Ordinamento contenuto del file txt
- 18. Salvataggio del contenuto di textarea su file
- 19. Confermare il contenuto del file con l'hash
- 20. Come leggere il contenuto del file da un file?
- 21. Sostituisci le costanti nel test del goniometro
- 22. Stringa C# Sostituisci
- 23. Modifica del contenuto div tramite jquery con un altro contenuto del file html
- 24. Visualizzazione del contenuto del testo nell'app HTML5
- 25. Il file di lettura PHP aggiunge lunghezza del contenuto all'output
- 26. haskell - analisi/lettura del contenuto di file .pdf
- 27. Angular.js flash del contenuto del modello
- 28. Come si cerca il contenuto storico del file mercurial?
- 29. come ottenere ParcelFileDescriptor per il contenuto del file?
- 30. Django - sostituisci le parti del tuo urlfield
prega (come sempre) seguire [linee guida questione generale] (http://tinyurl.com/so-hints), stato di eventuali restrizioni particolari, mostrano ciò che si hai provato fino ad ora e chiedi in che cosa ti confondi in modo specifico. –
Per favore, segna anche i tuoi compiti con il tag [homework]. –
correlati: [Come cercare e sostituire il testo in un file usando Python?] (Http://stackoverflow.com/q/17140886/4279) – jfs