Article View: es.comp.os.linux.programacion
Article #7546Re: Importar modulos en python
From: David Asorey Álvarez
Date: Wed, 12 Feb 2003 20:50
Date: Wed, 12 Feb 2003 20:50
70 lines
3559 bytes
3559 bytes
Con fecha Wed, 12 Feb 2003 12:19:50 +0000 (UTC)
ear@NOemulinuxSPAM.net ( Ear3ndil ) escribi�:
#!/> Hola a todos. Tengo un peque�o problemilla al intentar importar un
#!/> modulo. Resulta que necesito crear un archivo en cada directorio
#!/> home de cada usuario, ya que cada usuario tiene sus distintas
#!/> opciones&variables.
#!/> Asi pues, habia pensado en crear un modulo.py en cada usuario home
#!/> y cogerlo
#!/> con import en cuanto necesitase dichas variables. Hasta ahi no hay
#!/> problema.
#!/> El problema viene en que ese modulo ha de estar oculto y con import
#!/> no puedo
#!/> importar un modulo oculto (o al menos yo no se:).
#!/>
#!/> �Alguien sabe como importar (con import o lo que sea) un modulo
#!/> oculto?
#!/> Nada, gracias a todos:)
#!/>
En vez de importar un m�dulo, puedes probar con el m�dulo pickle. Lo
que hace es volcar un objeto python (una lista, diccionario, clase, lo
que sea) a un fichero (que puede tener el nombre que t� quieras, p. ej.:
.mi_fich_config). En el fichero vuelcas lo que quieras y luego lo
recuperas. Es asombrosamente �til.
Tengo un programita en el que utilizo el m�dulo pickle para lo mismo
que t� quieres: vuelco un diccionario con las preferencias del usuario a
un fichero. Te pego un extracto del programa.
(El diccionario preferences guarda las preferencias del usuario)
import pickle
# ....
# ....
def read_preferences(self):
self.preferences = {}
try:
f=open("prefs", "r")
self.preferences = pickle.load(f)
# Si existe el fichero, lo "cargamos"
except:
self.preferences = {
# Valores por defecto si no existe el fichero
'patch': '1', 'channel': '1', 'bpm': '60', \
'vel': '110', 'last_instrument': 'None', \
'notelen': '2', 'repeat': '8', 'lang': 'en'
}
self.save_preferences()
def save_preferences(self):
try:
f=open("prefs", "w")
pickle.dump(self.preferences, f)
# Volcamos las preferencias al fichero
return 1
except:
return 0
# ....
# ....
Puedes verlo entero en:
http://www.geocities.com/forodejazz/programacion/pytuner/index.html
En la documentaci�n de Python, en el tutorial, viene muy bien
explicado:
http://www.python.org/doc/current/tut/node9.html
�Espero que te sirva!
Un saludo.
David.
Technical Details
Message-ID:
<20030212215050.60651f22.forodejazz@yahoo.es>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!bloom-beacon.mit.edu!news.rediris.es!bashful.rediris.es!nsnmrro1-lo.nuria.telefonica-data.net!nsnmrro2-lo.nuria.telefonica-data.net!not-for-mailReferences:
<b2de56$ekk$1@nazgul.local>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,ed331d6d6f636745 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-02-12 12:53:15 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!bloom-beacon.mit.edu!news.rediris.es!bashful.rediris.es!nsnmrro1-lo.nuria.telefonica-data.net!nsnmrro2-lo.nuria.telefonica-data.net!not-for-mail From: David Asorey Álvarez <forodejazz@yahoo.es> Newsgroups: es.comp.os.linux.programacion Subject: Re: Importar modulos en python Date: Wed, 12 Feb 2003 21:50:50 +0100 Organization: Telefonica Data Espagna Lines: 70 Message-ID: <20030212215050.60651f22.forodejazz@yahoo.es> References: <b2de56$ekk$1@nazgul.local> NNTP-Posting-Host: 193-153-118-198.uc.nombres.ttd.es Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: nsnmrro2-gest.nuria.telefonica-data.net 1045083191 5484 193.153.118.198 (12 Feb 2003 20:53:11 GMT) X-Complaints-To: usenet@nsnmrro2-gest.nuria.telefonica-data.net NNTP-Posting-Date: Wed, 12 Feb 2003 20:53:11 +0000 (UTC) X-Newsreader: Sylpheed version 0.7.4 (GTK+ 1.2.10; i386-debian-linux-gnu)