• Domingo 22 de Diciembre de 2024, 09:27

Autor Tema:  Borrar Líneas De Un Archivo  (Leído 4103 veces)

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Borrar Líneas De Un Archivo
« en: Miércoles 5 de Diciembre de 2007, 17:20 »
0
Hola chicos de SoloCodigo, tengo una pregunta pregunta como siempre, estoy haciendo un pequeño shell en python para el manejo del proxy de la empresa, estoy escribiendo sobre unos ficheros y todo bien, ahora quisiera saber como buscar un dato en si y eliminarlo, tengo esto todo me funciona pero me quedo en lo de eliminar el dato.
Los puntos es para lo de la identación.

Código: Text
  1. #! /usr/bin/python
  2. # Desarrollado por RadicalEd
  3. import os
  4. import sys
  5.  
  6. os.system('clear')
  7.  
  8. def menu():
  9. ...capt = 0
  10. ...while capt <1 or capt>8:
  11. ......print('ESCOJA QUE DESEA HACER')
  12. ......print('(1) Agregar IP')
  13. ......print('(2) Agregar Página')
  14. ......print('(3) Eliminar IP')
  15. ......print('(4) Eliminar Página')
  16. ......print('(5) Ver IP\'s guardadas')
  17. ......print('(6) Ver páginas guardadas')
  18. ......print('(7) Reiniciar Proxy')
  19. ......print('(8) Salir')
  20. ......capt = int(raw_input('Opción: '))
  21. ......return capt
  22.  
  23. capt=0
  24. while capt != 16:
  25. ...capt = menu()
  26. ...if capt == 1:
  27. ......h=raw_input('Digite IP: ')
  28. ......f = open(r'./allow.raed', 'a')
  29. ......f.write(h+'\n')
  30. ......f.close()
  31. ...elif capt == 2:
  32. ......h=raw_input('Digite página: www.')
  33. ......f = open(r'./allow.sites', 'a')
  34. ......f.write(h+'\n')
  35. ......f.close()
  36. ...elif capt == 3:
  37. ......file = open('./allow.raed')
  38. ......ip = raw_input('Digite IP a eliminar: ')
  39. ......while 1:
  40. .........line = file.readline()
  41. .........if line == ip+'\n':
  42. ............print 'La IP si ta'
  43. ............print line,
  44. .........if not line: break
  45. ...elif capt == 4:
  46. ......file = open('./allow.sites')
  47. ......pagi = raw_input('Digite página a eliminar: ')
  48. ......while 1:
  49. .........line = file.readline()
  50. .........if line == pagi+'\n':
  51. ............print 'La página si ta'
  52. ............print line,
  53. .........if not line: break
  54. ...elif capt == 5:
  55. ......print file('./allow.raed').read()
  56. ...elif capt == 6:
  57. ......print file('./allow.sites').read()
  58. ...elif capt == 7:
  59. ......os.system('service squid restart')
  60. ...elif capt == 8:
  61. ......sys.exit()
  62.  
Alguna ayuda???

Gracias Chao
El pasado son solo recuerdos, el futuro son solo sueños

NRM

  • Miembro MUY activo
  • ***
  • Mensajes: 279
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.narrowmind.com.ar
Re: Borrar Líneas De Un Archivo
« Respuesta #1 en: Jueves 6 de Diciembre de 2007, 05:39 »
0
en este momento solo se me ocurre esta forma.

Código: Text
  1. output = ""
  2. fdi = open("c:\\note.txt", "r")
  3. for line in fdi:
  4.   if line.strip() != "line 2":
  5.     output += line
  6. fdi.close()
  7. fdo = open("c:\\note.txt", "w")
  8. fdo.write(output)
  9. fdo.close()
  10.  

como algo extra, te recomiendo que uses el modulo cmd[1] para hacer scripts que tengan un sistema de menus como el que pusiste arriba.

nrm

[1] - http://docs.python.org/lib/module-cmd.html

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Borrar Líneas De Un Archivo
« Respuesta #2 en: Jueves 6 de Diciembre de 2007, 20:21 »
0
Thanks NRM quedo full, mira por el momento lo deje de esta forma, mientras aprendo a manejar el cmd:
Código: Text
  1. #! /usr/bin/python
  2. # Desarrollado por RadicalEd
  3. import os
  4. import sys
  5.  
  6. os.system('clear')
  7.  
  8. def menu():
  9.     capt = 0
  10.     while capt <1 or capt>8:
  11.         print('ESCOJA QUE DESEA HACER')
  12.         print('(1) Agregar IP')
  13.         print('(2) Agregar Página')
  14.         print('(3) Eliminar IP')
  15.         print('(4) Eliminar Página')
  16.         print('(5) Ver IP\'s guardadas')
  17.         print('(6) Ver páginas guardadas')
  18.         print('(7) Reiniciar Proxy')
  19.         print('(8) Salir')
  20.         capt = int(raw_input('Opción: '))
  21.         return capt
  22.  
  23. capt=0
  24. while capt != 16:
  25.     capt = menu()
  26.     if capt == 1:
  27.         h=raw_input('Digite IP: ')
  28.         f = open(r'./allow.raed', 'a')
  29.         f.write(h+'\n')
  30.         f.close()
  31.     elif capt == 2:
  32.         h=raw_input('Digite página: www.')
  33.         f = open(r'./allow.sites', 'a')
  34.         f.write(h+'\n')
  35.         f.close()
  36.     elif capt == 3:
  37.         output = ""
  38.         ip = raw_input('Digite IP a eliminar: ')
  39.         f = open("./allow.raed", "r")
  40.         for line in f:
  41.             if line.strip() != ip:
  42.                 output += line
  43.         f.close()
  44.         f = open("./allow.raed", "w")
  45.         f.write(output)
  46.         f.close()
  47.     elif capt == 4:
  48.         output = ""
  49.         pag = raw_input('Digite página a eliminar: www.')
  50.         f = open("./allow.sites", "r")
  51.         for line in f:
  52.             if line.strip() != pag:
  53.                 output += line
  54.         f.close()
  55.         f = open("./allow.sites", "w")
  56.         f.write(output)
  57.         f.close()
  58.     elif capt == 5:
  59.         print file('./allow.raed').read()
  60.     elif capt == 6:
  61.         print file('./allow.sites').read()
  62.     elif capt == 7:
  63.         os.system('service squid restart')
  64.     elif capt == 8:
  65.         sys.exit()
  66.  
  67.  
  68.  
El pasado son solo recuerdos, el futuro son solo sueños