SoloCodigo

Programación Web y Scripting => Python => Mensaje iniciado por: RadicalEd en Miércoles 5 de Diciembre de 2007, 17:20

Título: Borrar Líneas De Un Archivo
Publicado por: RadicalEd en Miércoles 5 de Diciembre de 2007, 17:20
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
Título: Re: Borrar Líneas De Un Archivo
Publicado por: NRM en Jueves 6 de Diciembre de 2007, 05:39
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 (http://docs.python.org/lib/module-cmd.html)
Título: Re: Borrar Líneas De Un Archivo
Publicado por: RadicalEd en Jueves 6 de Diciembre de 2007, 20:21
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.