Foros Python
sobrescribir txt - Versión para impresión

+- Foros Python (https://foro.recursospython.com)
+-- Foro: Desarrollo (https://foro.recursospython.com/forumdisplay.php?fid=1)
+--- Foro: General (https://foro.recursospython.com/forumdisplay.php?fid=9)
+--- Tema: sobrescribir txt (/showthread.php?tid=17)



sobrescribir txt - angeljonh - 18-11-2016

como puedo sobrescribir un archivo de txt y carmibar el titulo y el contenido en mayusculas.

ejemplo:
denota archivo:
texto.txt

se sobrescribio tu archivo a
TEXTO.txt
y el contenido en mayusculas.

aki tengo el seudocodigo, pero solo me denota las mayusculas en el shell y en el titulo, pero no en el contenido

  1. import shutil
  2. def e2():
  3.     n=input("Dame el nombre del fichero: ")
  4.     m=input("Denote el fichero que desea modificar")
  5.     if(n == '0'):
  6.         return menu()
  7.     print(n.upper())
  8.     c=shutil.copy(m,n)
  9.     a= open(n,'r')
  10.     lista=a.read()
  11.     with open(n) as f:
  12.         n.upper()
  13.         a.close()
  14.         print("contenido del fichero es:\n",lista)
  15.         return e2()
  16. e2()
  17. input()



RE: sobrescribir txt - Francisco - 21-11-2016

El método str.upper no altera la cadena original, de hecho ningún método que actúe sobre cadenas de caracteres lo hace porque éstas son inmutables. En lugar de eso, la función retorna una nueva cadena íntegramente en letras mayúsculas. Por ende, si content es el contenido de tu archivo y filename el nombre, entonces:

  1. # Convertirlo a mayúsculas.
  2. content = content.upper()
  3. filename = filename.upper()
  4. # Reemplazar el contenido anterior por el nuevo.
  5. with open(filename, "w") as f:
  6.    f.write(content)


Un saludo.