Dudas de principiante :)

Chema Cortes chemacortes en wanadoo.es
Mar Mayo 21 09:30:09 CEST 2002


Hola, Attila:

Te respondo escuetamente, y por partes:

1) mírate el módulo 'shutil'. Tiene un ejemplo que copia ficheros de un
directorio completo.

1.1) para hacer un rename usa 'os.rename'

1.2) la ruta se añade, como bien dices, al nombre del fichero. Es
recomendable que no asumas una plataforma específica, y codifiques pensando
más en general. Utiliza los métodos de 'os' y 'os.path' para contruir las
rutas a los ficheros.

2) Mira el módulo 'ConfigParser' para manejar ficheros INI.

Para insertar una nueva línea en medio de un fichero hay que reescribir todo
el fichero.


Espero que te sirva de aclaración.
Saludos,
--
Chema Cortes (chemacortes en wanadoo.es) | LinuxUser#142755 - SuSE Linux 8.0
ZARALINUX http://www.zaralinux.org | La ignorancia se apodera de quien
PYTANDO http://pytando.sf.net | se contenta con lo que sabe



--------- Original message --------
From: "Attila Saorin" <mostroratas en yahoo.es>
To: "Lista de Pyhton" <python-es en aditel.org>
Subject: [Python-es] Dudas de principiante :)
Date: 05-21-02 11:42

Saludos a todos,

este es mi primer mensaje a la lista, soy novato en
python, pero no programando. Tengo que escribir mi
Proyecto Fin de Carrera en python, asi que es mi
primer contacto con este lenguaje y tengo varias
dudas, me he leido la GUIA DE APRENDIZAJE DE PYTHON
(van Rossum) y he consultado en varias webs en espanol
e ingles y no he encontrado algo claro.

Voy por partes (todo esto en linux):

1) quisiera copiar un fichero de un sitio a otro, la
unica solucion encontrada es abrir el origen y el
destino y copiar todo de uno a otro (el que mas habla
sobre esto es el enlace que habeis mandado de "how to
think as Computer Scientist", de donde es esta
solucion):

def copyFile(oldFile, newFile):
f1 = open(oldFile, "r")
f2 = open(newFile, "w")
while 1:
text = f1.read(50)
if text == "":
break
f2.write(text)
f1.close()
f2.close()
return

no me parece del todo bonita e imagino que podria
hacerlo de alguna otra forma mas elegante, quizas
hacer una llamada al sistema que haga la copia del
fichero como tal? no se si es la mejor opcion, con un
directorio completo seria igual?

1.1) dentro de esta opcion, para decirle que si ese
fichero existe ya en destino que haga un backup del
antiguo, creo que si deberia hacer una llamada a
sistema rename, no?

1.2) para decir los directorios de origen y destino,
simplemente pongo con comillas todo el path?
"bin/origen.txt" "home/attila/destino.txt" asi?

2) para el mismo tema de ficheros, pero para el caso
de tener que buscar un determinado texto en los
ficheros para modificarlos, es decir, retocar ficheros
de configuracion, no se como buscar una linea
determinada, he intentado encontrar algo en la
biblioteca de expresiones regulares, pero no me ha
quedado claro como hacerlo:

por ejemplo saber si en determinado fichero, nt.conf
existe la linea que diga lo que sea, si existe veo que
tiene y si no, aniado la linea que yo quiero. Veo que
deberia abrir el fichero entero y meterlo en una
variable y buscar a partir de ahi, pero tb. se dice
que puede abrir el fichero para leer o escribir o
hacer un append, pero lo normal es que yo quiera
modificar una linea en medio, seria ents con "r+"?

Bueno, no se si os han quedado claras mis dudas, si
no, intentare explicarme mejor, espero que no sean
demasiadas preguntas a la vez.

Muchas gracias de antemano.

Attila Saorin





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