¿Cómo puedo abrir un archivo, Stud.txt, y luego reemplazar cualquier aparición de "A" por "Naranja"?Reemplazar cadena dentro del contenido del archivo
Respuesta
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 - las pautas de tarea dicen no rechazar respuestas para preguntas de tarea. Especialmente los que son posiblemente legítimos. +1 para la forma correcta de hacer esto. – katrielalex
"t" para el modo de texto es solo Python 3. Además, proporciona un administrador de contexto para su archivo de salida, pero no cierra el archivo de entrada, lo que parece inconsistente. –
@katrielalex: No hay votos a la baja, simplemente no voté en contra. Pero dar respuestas a la tarea es [no es la forma correcta de hacerlo] (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)
Algo así como
file = open('Stud.txt')
contents = file.read()
replaced_contents = contents.replace('A', 'Orange')
<do stuff with the result>
forma más fácil es hacerlo con expresiones regulares, suponiendo que desea iterar sobre cada línea en el archivo (donde se almacenaría 'A') que hacer ...
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)
Si desea reemplazar las cuerdas en el mismo archivo, es probable que tenga que leer su contenido en un local de variables, cerrarlo y volver a abrirlo para escribir:
estoy usando the with statement en este ejemplo, que cierra el archivo después de que se termina el bloque with
- ya sea normalmente cuando el último comando termina de ejecutar, o por una excepción.
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 mencionar que si los nombres de archivo son diferentes, podríamos haber hecho esto más elegante con un solo with
comunicado.
Esta solución es mejor porque no cambia el nombre del archivo a diferencia de la respuesta anterior. –
¿Por qué enjuaga() inmediatamente antes de cerrar()? Espero que close() haga cualquier enrojecimiento necesario. – ChrisPhoenix
@ChrisPhoenix [Corregir] (http://stackoverflow.com/questions/2447143/does-close-imply-flush-in-python), podemos usar 'con' y deshacernos tanto de' close' como 'flush' . –
#!/usr/bin/python
with open(FileName) as f:
newText=f.read().replace('A', 'Orange')
with open(FileName, "w") as f:
f.write(newText)
Si está en Linux y sólo quiere reemplazar una palabra que puede hacer:
text.txt:
Hi, i am a dog and dog's are awesome, i love dogs! dog dog dogs!
Comando Linux:
sed -i 's/dog/cat/g' test.txt
Salida:
Hi, i am a cat and cat's are awesome, i love cats! cat cat cats!
Post original: https://askubuntu.com/questions/20414/find-and-replace-text-within-a-file-using-commands
- 1. contenido dentro del archivo zip
- 2. reemplazar/patrón sustituto con el contenido del archivo
- 3. Modificación del contenido del archivo existente en Java
- 4. jQuery: reemplazar el texto dentro del enlace?
- 5. C# replace string dentro del archivo
- 6. Contenido del centro CSS dentro de div
- 7. requieren archivo dentro del módulo?
- 8. Ant reemplazar token del archivo de propiedades
- 9. jQuery Reemplazar el contenido del cuerpo de la tabla
- 10. Reemplazar cadena en el archivo
- 11. Cómo reemplazar cadena dentro de un archivo bat con cadena de parámetros de línea de comandos
- 12. Perforce Error de "Traducción del contenido del archivo"
- 13. Confirmación del contenido del archivo contra el hash
- 14. elisp crear buffer sin nombre del contenido del archivo
- 15. Convenciones para contenido adicional del archivo manifest.mf?
- 16. ¿Cómo agregar contenido del archivo usando jQuery?
- 17. Eliminar todo el contenido del archivo
- 18. ¿Descifrar el contenido del archivo cifrado?
- 19. Para ver el contenido del archivo .jar
- 20. ¿Cómo leer el contenido del archivo desde un archivo?
- 21. Incluir archivo JS dentro del ámbito privado
- 22. Gradle: Reemplazar tokens encontrando los tokens del archivo de propiedades
- 23. ¿Cómo cambiar la altura del iframe en función del contenido dinámico dentro del iframe?
- 24. Comparación del número de versión dentro del archivo MAKE
- 25. valor del elemento Deserialize como cadena aunque contiene contenido mixto
- 26. Cómo almacenar datos dentro del archivo ejecutable
- 27. Constante de PHP dentro del archivo JS
- 28. Obtener module.exports desde dentro del mismo archivo
- 29. Definir contexto dentro del archivo WAR
- 30. Destacando js-code dentro del archivo php
favor (como siempre) siga [directrices cuestión general] (http://tinyurl.com/so-hints), estado de las restricciones especiales, muestran lo que Lo he intentado hasta ahora y pregunto qué es lo que específicamente te está confundiendo. –
Por favor, también, marque su tarea con la etiqueta [tarea]. –
relacionado: [¿Cómo buscar y reemplazar texto en un archivo usando Python?] (Http://stackoverflow.com/q/17140886/4279) – jfs