[Python-es] No veo el fallo :(

Chema Cortes chemacortes en wanadoo.es
Vie Mayo 31 09:10:56 CEST 2002


> Buenas tardes,

Buenas. Ya te ha respondido Luis Miguel, por lo que voy a centrarme en algunos detalles:

> sigo con mi codigo que busca en un fichero una linea si la encuentra la cambia y si no, la aniade,
> por claridad he preferido hacerlo de esta forma:
> 
> #!/usr/bin/env python
> 
> __name__ == "__main__"

Esta línea, así, no hace nada. Debería ir en un if que diera entrada al código que quieres que se ejecute desde línea de comandos (ya lo hemos contado en mensajes anteriores):

if __name__=="__main__":
  # código a ejecutar en línea de comandos

> import os
> import string

Empieza a desaconsejarse ("deprecated") el uso del módulo string. Sigue por razones de compatibilidad, pero es mejor utilizar los métodos de objeto string (ver más adelante).


> def edit (file, oldLine, newLine):
>     "Editing..."
>     source=open(file,'r')
>     temp=open('tmp.txt','w')
>     text=source.read()
>     if (string.find(text,oldLine)):

La condición sería:
  if string.find(text,oldline)>=0

Como he dicho, es aconsejable  utilizar los métodos string:

  if text.find(oldline)>=0

También es aconsejable usar la función file() en lugar de open().  En realidad se trata de la misma función, pero file() se asemeja más al modo de inicialización de un objeto, en este caso de la clase file.

>         print 'la linea esta en el fichero'
>         temp.write(text.replace(oldLine,newLine))
>     else:
>         print 'la linea NO esta en el fichero'
>         temp.write(text)
>         temp.write(newLine)
>     source.close()
>     temp.close()
>     os.rename('tmp.txt',file)

> Por cierto, que he buscado algun metodo para saber, antes de abrir el fichero original, ver que
> permisos q tiene para restaurarlos luego cuando lo haya modificado, pero solo he encontrado el
> chown y chmod y claro, no me sirven.

Mira en el 'shutil.copymode'

Saludos,
-- 
Chema Cortes (chemacortes en wanadoo.es)
_____________________________________________________________________
No olvides nada. Recuerda los cumpleaños, tus citas, tus cenas románticas y 
todo lo que quieras usando la Agenda personal de Wanadoo.es, desde cualquier 
lugar conectado a Internet. Visítala en http://www.wanadoo.es/agenda






Más información sobre la lista de distribución Python-es