🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #13140

Re: [LARGO] Re: [python] De shell a python

#13140
From: Fernand0
Date: Mon, 19 Mar 2001 12:07
197 lines
7414 bytes
Hola,

existe lista de correo en castellano sobre python ? 
valdr�a la pena hacer una ??

-- 
Fernand0

 Jes�s Carrete Monta�a <kuantiko@escomposlinux.org> wrote:
>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>>>>>> "Santiago" == Santiago Romero <sromero@escomposlinux.org> writes:
>
>    Santiago>  Lo que sigue son comandos de ejemplo para pasar a
>    Santiago> python:
>
>    Santiago> echo "aeiou" > fichero echo "mas_aeiou" >> fichero
>
>f=open("fichero","r+") #Abrimos el fichero
>f.seek(0,2) #Nos colocamos al final
>f.write("aeiou") #escribimos
>f.write("mas_aeiou") #seguimos escribiendo
>f.close() #cerramos el fichero
>
>    Santiago> variable=`grep cadena fichero`
>
>import re #M�dulo de expresiones regulares
>#En realidad para buscar una cadena basta el m�dulo string, pero ya
>#puestos vamos a buscar una regexp
>
>Regexp=re.compile("^ae{3}i+$")#No es estrictamente necesario compilar,
>#pero si acelera bastante el proceso cuando se busca varias veces
>
>f=open("fichero","r") #Abrimos el fichero
>Variable=[]
>while 1:
>        Read=f.readline() #Leemos una l�nea por vez
>        if Read=='': break #Si hay un EOF salimso del bucle
>        Result=Regexp.search(Read)#Aplicamos la regexp a la l�nea
>        if Result==None: continue #Pasamos a la siguiente si no coincide
>        Variable.append(Result.group(0)) #Si coincide a�adimos la l�nea
>f.close()#cerramos el fichero
>#Ahora Variable tendr� el valor de una lista de las l�neas que coincidieron
>
>    Santiago> ficheros=`ls *.c`
>
>import os
>Ficheros=os.listdir(".") #Listado del directorio
>import re
>for Fichero in Ficheros:
>        if re.search("^.*?\.c$", Fichero)==None: Ficheros.remove(Fichero)
>#Hemos eliminado todos los archivos que no sean .c
>
>    Santiago> for i in `find . -name "*.c"`; do vim $i; done;
>
>import os
>Ficheros=os.listdir(".")
>import re
>for Fichero in Ficheros:
>        if re.search("^.*?\.c$", Fichero)==None: Ficheros.remove(Fichero)
>#Hasta aqu� como antes
>for Fichero in Ficheros:
>        os.system("emacs "+Fichero)
>#Humm... noto una peque�a diferencia, pero d�nde estar�... XD
>
>Aprovecho para decir que existe vim-python, que permite controlar vim
>desde python.
>
>    Santiago> cat fichero.txt | cut -f 2 -d " "
>
>import string
>f=open("fichero","r")
>while 1:
>        Line=f.readline() #podr�amos usar readlines(), pero se puede
>        #desbordar la memoria
>        if Line='': break
>        List=string.split(Line," ")#eparamos los campos
>        print List[1] #e imprimimos el que deseemos
>f.close()
>
>    Santiago> if [ -t fichero ]; then echo "Fichero existe"; fi
>
>import os.path
>if os.path.exists("fichero"): print "Fichero existe"
>
>    Santiago> comando &
>
>import Threading
>import os #se pueden importar varios en la misma l�nea, pero no me gusta XD
>for Threading import *
>NuevoThread=Thread(None,os.system,"NuevoThread",("comando"))
>#Llamamos a un nuevo thread para ejecutar el comando
>
>    Santiago> # �tal vez exista argc, como en C, para resolver esta? :
>
>Existe sys.argv, y len(sys.argv) es argc :-).
>
>    Santiago> if test -z "$*"; then echo "Uso: programa argumento1
>    Santiago> argumento2"; fi
> 
>No s� lo que significa eso en bash, pero supongo que algo como:
>
>import sys
>if len(sys.argv) != 3:
>        print "Uso : "+sys.argv[0]+" argumento1 argumento2"
>        sys.exit(1)
>
>    Santiago>  - �C�mo puedo imprimir el valor de una matrix sin hacer
>    Santiago> un bucle que la recorra? (como en matlab, tal vez no se
>    Santiago> pueda).
>
>Matriz=[1,2,4,5,6]
>print Matriz
>
>        �Cu�l es el problema?
>
>    Santiago>  Esto es todo lo que me viene por ahora a la
>    Santiago> memoria... :)
>
>        Te habr�s quedado descansado XDD
>
>    Santiago>  El problema es que no s� si debo usar una orden tipo
>    Santiago> "exec" para ejecutar el comando de shell, o si existen
>    Santiago> ordenes similares en python que me permitan hacer esas
>    Santiago> cosas sin darle 2000 vueltas al asunto, si puedo
>    Santiago> conseguir que una variable de python valga la salida de
>    Santiago> ese comando (ej var=`ls *.c`), etc.
>
>        Tienes todas las opciones. Desde os.system() (igual al
>system() de C), pasando por popen() para abrir una pipe, a las
>funciones de os y os.path para manejo de archivos. Ya para terminar,
>que voy a ganar el premio al mensaje co�azo del mes, te pego un
>peque�o ejemplo de script que hice para adecuar los permisos de un
>directorio y sus archivos para subirlos a una web:
>
>++++
>#!/usr/bin/python
>
>import os
>import sys
>import os.path
>
>def BajaDir(Directorio):
>	try:
>		os.chdir(Directorio)
>	except OSError:
>		print Directorio,"- No se pudo abrir el directorio."
>	Lista=os.listdir(Directorio)
>	for Fichero in Lista:
>		if os.path.isdir(Fichero):
>			Lista2=os.listdir(Fichero)
>			for Fichero2 in Lista2:
>				NombreFichero=Fichero+"/"+Fichero2
>				Lista.append(NombreFichero)
>	for Fichero in Lista:
>		CambiaPermisos(Fichero)
>
>def CambiaPermisos(Fichero):
>	if os.path.isdir(Fichero):
>		os.chmod(Fichero,0755)
>	else:
>		os.chmod(Fichero,0644)
>
>if len(sys.argv) < 2:
>	print "Debe especificar un directorio."
>	sys.exit(1)
>
>BajaDir(sys.argv[1])
>++++
>
>Un saludo.
>
>P.D.: No he probado los programas, podr�an contener alg�n error accidental, 
>pero deber�a ser trivial. En cualquier caso si no puedes solucionarlo
>avisa. Ah, y tambi�n falta control de errores al abrir archivos y tal,
>pero si lo pongo el mensaje se eterniza.
>
>P.D2: Te aconsejo un vistacillo a la tutorial y a la library reference que
>cuelgan de /usr/doc/python/html/index.html
>- -- 
>"!Dios aleje de nosotros la serenidad de los ignorantes!
>�Dios aparte de nosotros la paz de los cobardes!" (De Gasparin)
>Jes�s Carrete Monta�a (Kuantiko) <kuantiko@escomposlinux.org>
>LRU #158442 -> I use free software. | PGP Key -> pgp.rediris.es
>-----BEGIN PGP SIGNATURE-----
>Version: GnuPG v1.0.4 (GNU/Linux)
>Comment: Processed by Mailcrypt and GnuPG
>
>iD8DBQE6tLPQfUtQQKOnZ1IRAiXKAJ9mGL3K/6tdzivOHcyt/ajtB6h9LgCfXvvQ
>aM8kN0yra6ECDBwd3SJLuVY=
>=yZWj
>-----END PGP SIGNATURE-----


-- 
Fernand0
Technical Details
Message-ID: <slrn9bbshn.n1o.Fernand0@viernes.cps.unizar.es>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-03!supernews.com!nntp.cs.ubc.ca!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!opentransit.net!jussieu.fr!news.rediris.es!news.unizar.es!Fernand0
References: <bl3299.vc.ln@127.0.0.1> <87u24r43yx.fsf@relativistic.homeip.net>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,4729121b4927b783
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2001-03-19 03:56:07 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-03!supernews.com!nntp.cs.ubc.ca!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!opentransit.net!jussieu.fr!news.rediris.es!news.unizar.es!Fernand0
From: Fernand0@my-deja.com (Fernand0)
Newsgroups: es.comp.os.linux.programacion
Subject: Re: [LARGO] Re: [python] De shell a python
Date: 19 Mar 2001 12:07:50 GMT
Organization: No
Lines: 197
Message-ID: <slrn9bbshn.n1o.Fernand0@viernes.cps.unizar.es>
References: <bl3299.vc.ln@127.0.0.1> <87u24r43yx.fsf@relativistic.homeip.net>
NNTP-Posting-Host: viernes.cps.unizar.es
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: news.unizar.es 985003670 8722 155.210.152.24 (19 Mar 2001 12:07:50 GMT)
X-Complaints-To: usenet@news.unizar.es
NNTP-Posting-Date: 19 Mar 2001 12:07:50 GMT
User-Agent: slrn/0.9.6.2 (Linux)