Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.

Nombre de usuario/Email:
  

Contraseña
  





Buscar en los foros

(Búsqueda avanzada)

Últimos temas
Validar fecha ingresada p...
Foro: General
Último mensaje por: Francisco
, 06:15 PM
» Respuestas: 6
» Vistas: 51
Obtencion archivos de un ...
Foro: General
Último mensaje por: calvicius
22-01-2018, 08:03 PM
» Respuestas: 4
» Vistas: 53
envio y acceso escritorio...
Foro: General
Último mensaje por: Francisco
18-01-2018, 10:23 PM
» Respuestas: 10
» Vistas: 214
Dudas con archivo de text...
Foro: General
Último mensaje por: Daniel.py
18-01-2018, 03:15 PM
» Respuestas: 11
» Vistas: 204
Signo + en variable y que...
Foro: General
Último mensaje por: Francisco
10-01-2018, 04:56 PM
» Respuestas: 8
» Vistas: 203
Argumentos sys.argv[1].sp...
Foro: General
Último mensaje por: calvicius
08-01-2018, 04:22 PM
» Respuestas: 1
» Vistas: 68
Limpiar el terminal, func...
Foro: General
Último mensaje por: Daniel.py
03-01-2018, 11:27 AM
» Respuestas: 4
» Vistas: 117
Mysql y Python
Foro: General
Último mensaje por: Francisco
17-12-2017, 08:19 PM
» Respuestas: 11
» Vistas: 351
Problema con ejercicio de...
Foro: General
Último mensaje por: Francisco
16-12-2017, 06:26 PM
» Respuestas: 1
» Vistas: 252
Ejecutar archivo con perm...
Foro: General
Último mensaje por: Francisco
15-12-2017, 03:56 PM
» Respuestas: 1
» Vistas: 265

 
  Validar fecha ingresada por teclado en Python
Enviado por: Daniel.py - 22-01-2018, 05:37 PM - Foro: General - Respuestas (6)

Hola, ¿cómo están? -
Dejo un pequeño código, el más conciso que encontré para validar fecha ingresada por teclado, parece funcionar bien, lo único que no puedo realizar es que imprima la fecha de esta manera 18/01/1952 y no 1952/01/18, tal vez sea algo sencillo pero no sé ni como poner en Google. -  Big Grin


Código:
from datetime import datetime

while True:
   try:
       fecha_str = input('\n Ingrese fecha ==> ejemplo "18/01/1952"...: ')
       fecha = datetime.strptime(fecha_str, '%d/%m/%Y')
       break
   except:
       print("\n No ha ingresado una fecha correcta...")

print("\n ", fecha)

Saludos.

Imprimir

  Obtencion archivos de un ftp
Enviado por: cucuru - 17-01-2018, 08:46 AM - Foro: General - Respuestas (4)

Hola , tengo una pregunta , el caso es el siguiente , tengo un servidor ftp que va recibiendo constantemente archivos y cuando hago la consulta necesito obtener el archivo mas reciente , como es logico desconoaco el nombre de este archivo , hay alguna manera de saber cual es el archivo mas reciente que exite en el ftp cuando hacemos la consulta ?

Imprimir

  Dudas con archivo de texto en python.
Enviado por: Daniel.py - 15-01-2018, 06:12 PM - Foro: General - Respuestas (11)

Hola, ¿como están?.-
Cómo es de esperar(por lo menos para mi) este autodidacta de 65 años tiene que molestarlos nuevamente porque es el único canal de consulta
humano que dispongo.-
Les cuento lo que me pasa, tengo un .txt de donde obtengo la descripción de los productos que es el siguiente:

Cita:0001   Galletias Granix c/sesamo.........$
0002   Huevos(1/2 docena).................$
0003   Aceite Natura de 1.000 cc.........$
0004   Azúcar(la mas económica)........$
0005   Jabón tocador (rexona)............$
0006   Jabón polvo(ala x 800 común)..$
0007   Jabón polvo(Skip x 400)...........$
0008   Jugo sobre tang.......................$
0009   Duraznos el Kgr.......................$
0010   Manzana el Kgr........................$
0011   Bananas el Kgr........................$
0012   Naranjas el Kgr........................$
0013   Tomate el Kgr..........................$
0014   Amarga(cortada) el Kgr............$
0015   Repollo(cortado) el Kgr............$
0016   Batatas el Kgr.........................$
0017   Papas(lavada) el Kgr................$

Pero estoy trabado, en definitiva les muestro como debe quedar, tengo que agregarle al principio la fecha y al final el precio de cada producto, ¿debo utilizar una tupla o una lista?, cuando este completo lo vuelco en otro archivo, así tengo que hacer lo mismo todos los meses.-
Cita:Enero 2018   0001   Galletias Granix c/sesamo.........$ 18.90


Código:
# Evolución de costos en Argentina - 14/01/2018

import os

def limpiar():
   if os.name == "posix":
       os.system ("clear")
   elif os.name in ("ce", "nt", "dos"):
       os.system ("cls")

def menu():
   while True:
       limpiar()

       print("\n")
       print(" ============ Evolución de costos ============")
       print("\n 1 - Agregar \n 2 - Modificar \n 3 - Consultar \n 4 - Salir") 
       opc=input("\n Ingrese opción...: ")
       if opc == '1':
           limpiar()
           agregar()
       elif opc == '2':
           modificar()
       elif opc == '3':
           consultar()
       elif opc == '4':
           break
       else:
           print("\n Ingreso incorrecto, inténtelo nuevamente...")
           input("\n Pulse una tecla para continuar...")

def agregar():
   while True:
       mes  = ing_mes()
       anio = ing_anio()
       p = aceptar(mes, anio)
       if p:
           break

   limpiar()
   fecha= mes + ' ' + str(anio)
   print("\n ===== Agregar lista completa de precios =====")
   print("\n Fecha = {}".format(fecha))
   with open("detalle.txt", "r") as archivo:
       print("\n")
       print("-"*50)
       print(" Código   Producto                         Precio")
       print("-"*50)
       for producto in archivo:
           print(producto[:-1], end=" ")
           a=input("")


def ing_mes():
   tMes = ("", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio",
           "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre", )
   while True:
       try:
           num_mes = int(input("\n Ingrese número del mes...: "))
       except:
           print("\n\t El ingreso es incorrecto...")
       else:
           if num_mes >= 1 and num_mes <= 12:
               mes = tMes[num_mes]
               break
           else:
               print("\n\t El ingreso es incorrecto...")

   return mes

def ing_anio():
   while True:
       try:
           anio = int(input("\n Ingrese año..............:"))
           break
       except:
           print("\n\t El ingreso es incorrecto...")

   return anio

def aceptar(mes, anio):
   print("\n La fecha ingresada es...: ", mes, anio)
   p = input('\n Para confirmar ingrese "Si" otra para modificar...:')
   if p == 'Si':
       return True
   else:
       return False

def modificar():
   print("modificar")

def consultar():
   print("consultar")


menu()

Código:
def agregar():
el inconveniente radica en la última línea de esta función.

No estoy seguro de ser lo bastante explicito, ustedes dirán.-
Un abrazo.
Daniel

Imprimir

  Argumentos sys.argv[1].split() as string?
Enviado por: Josu22 - 08-01-2018, 01:43 PM - Foro: General - Respuestas (1)

Hola a todos,

Estoy atascado en un script. Os intento exponer a ver si me podeis ayudar.

defino lo siguiente antes de entrar en el loop.

cliente, fecha, hora, state, nombre, result, most_repeated = sys.argv[1].split()

timestamp = str(fecha)+' '+' '+str(hora)

    CLIENTE 08-01-2018 08:44:00 1 Prueba1 ALERT 4000 192.168.1.113 ==>> 8.8.8.8:53 ==>> DNS

La ejecución es la siguiente:

    ./script.py "CLIENTE 08-01-2018 08:44:00 1 nombre de la alerta que sea 5000 192.168.1.113 ==>> 8.8.8.8:53 ==>> DNS"

Al meter espacios entre los parametros esto los toma como diferentes parametros como todos sabemos.

Quiero que:

concretamente los campos

    ./script.py "CLIENTE 08-01-2018 08:44:00 1 nombre de la alerta que sea 5000 192.168.1.113 ==>> 8.8.8.8:53 ==>> DNS"

Lo tome como un unico parametro.

Lo he estado formateando con "%s" Pero cuando salgan mas palabras en el nombre de la alerta no funcionará.

Un saludo y gracias de antemano.

Imprimir

  Signo + en variable y que funcione como operador[Python]
Enviado por: Daniel.py - 07-01-2018, 06:18 PM - Foro: General - Respuestas (8)

Hola gente, que tengan un muy buen día.-
Hace unas cuantas horas que estoy con el tema y no le encuentro la solución por eso los molesto, una sola pregunta ¿es esto
factible en python? de ser posible me podrian dar alguna guía.-


Código:
a=chr(43)
#b=ord('+')

#print(a)
#print(b)
print(5 a 7) #12

Saludos.
Daniel

Imprimir

  envio y acceso escritorio remoto
Enviado por: calvicius - 07-01-2018, 05:00 PM - Foro: General - Respuestas (10)

hola,

Estoy creando una aplicación para impartir docencia por internet.
La aplicación se compone de un chat de grupo (eso ya lo tengo con un servidor de sockets). La cuestión del audio no me preocupa demasiado, proque lo puedo hacer en un modulo aparte con mumble/murmur.
La cuestión es que el profesor va desarrollando su clase a los alumnos en su propio ordenador y esas sucesivas pantallas (creo que en ingles se pueden llamar frames) se deben transmitir a los alumnos conectados en ese momento. Los alumnos, en principio, solo deben ver lo que se desarrolla en su pantalla, salvor que el profesor les de autorización a los alumnos (esa instrucción se puede pasar a traves del servidor de sockets) cambiando el estatus del cliente de on a off y viceversa.

¿como puedo hacer el acceso al escritorio remoto del profesor?. Quedaría muy agradecido si alguien me puede facilitar documentación o consejos sobre los principios básicos (con la lógica y librerías de apoyo). El resto, obviamente queda a mi cargo Angel . El tema de audio/video no es mi fuerte.

La parte servidor del profesor estará siempre en windows.

He leído estas librerías:

[url= http://timgolden.me.uk/python/wmi/tutori...orial.html[/url]

https://www.darknet.org.uk/2017/11/rdpy-...-protocol/

Y este otro articulo que me parece curioso e interesante por su concepto:

https://plus.google.com/+VooduOrg/posts/GALziDv9CXN

gracias anticipadas

Imprimir

  Limpiar el terminal, funciona en linux pero no en windows.
Enviado por: Daniel.py - 01-01-2018, 11:47 PM - Foro: General - Respuestas (4)

Hola gente, ¿cómo están?
Cómo es mi primer post les cuento un poco de mí, tengo 65 años y como comprenderán ya no concurro a la universidad
soy un autodidacta con mucho tiempo para dedicarle a python, estaba estudiando c pero terminé un tanto frustrado
ya que me pareció muy difícil de aprender y como python es muy amigable aquí estoy.-
Les dejo el programita para que me digan si hay alguna solución, en linux funciona pero en windows 7 no limpia el terminal.


Código:
import os

def limpiar():
  input("\n Pulse una tecla para continuar...")
  if os.name == "posix":
     os.system ("clear")
  elif os.name == ("ce", "nt", "dos"):
     os.system ("cls")

while True:
  a=int(input("\n Ingrese un número mayor a cero...:"))
  if a == 0:
     break
  else:
     limpiar()

Saludos.
Daniel

Imprimir

Sad Problema con ejercicio de PYthon !!Ayuda
Enviado por: enzomf - 16-12-2017, 01:55 AM - Foro: General - Respuestas (1)

###Realice un programa para un club. El mismo debera permitir la carga de los socios (finalizando cuando se ingresa "Ultimo").La informacion de cada socio es numero,nombre,fecha de nacimiento,dni,categoria(simple,pleno) y fecha de ingreso.Estos datos deberan almacenarse en una lista.Luego debera imprimir por pantalla todas los socios con mas de treinta años de antiguedad y que hayan nacido antes del 28 de julio de 1960 para conocer a todos los socios vitalicios.Acontinuacion,se deberan listar los socios cuyo nombre comienza con "J"###
 
"Haber si pueden ayudarme este ejercicio no me da y no le encuentro la vuelta a la fecha de nacimiento no me lo toma en la otra función."

import time
def obtener_categoria():
categoria=raw_input("ingrese su categoria simple o pleno: ")
while categoria not in ("simple" , "pleno"):
categoria=raw_input("ingrese solo simple o pleno: ")
return categoria

def carga_datos():
socios=[]
nom=raw_input("Ingrese el nombre del socio o ultimo para terminar: ")
while nom!="ultimo":
numero=input("Ingrese el numero del socios: ")
fecha_n=raw_input("Ingrese fecha de nacimiento dd/mm/aaaa): ")
Dni=input("Ingrese su Dni: ")
categoria=obtener_categoria()
fecha_in=raw_input("Ingrese su fecha de ingresos: ")
socios.append([nom,numero,fecha_n,Dni,categoria,fecha_in])
nom=raw_input("Ingrese el nombre del socio o ultimo para terminar: ")
return socios

def calcularEdad(fecha):
fecha = fecha.split("/");
fechaActual = (time.strftime("%d/%m/%Y")).split("/");
edad = int(fechaActual[2]) - int(fecha[2])

if fecha[1]==fechaActual[1]:
if fecha[0]>fechaActual[1]:
edad=edad-1
if fecha[1]>fechaActual[1]:
edad=edad-1
return edad

def imprimir_antiguedad(socios):
print "nombre\t\tnumero\t\Fecha de nacimiento\tDNI\tCategoria\tIngreso"
print "-------------------------------------------------------------"
for s in socios:
fechaIn = s[5].split("/")
print calcularEdad(s[2])
if calcularEdad(s[2])>30 and (int(fechaIn[0])<28 and int(fechaIn[1])<7 and int(fechaIn[2])<1960):
print s[0] + "\t" + str(s[1]) + "\t"+ str(s[2])+ "\t" + str(s[3])+ "\t" + s[4]+ "\t" + str(s[5])

if s[0][0]=="j":
print s[0]


s=carga_datos()
imprimir_antiguedad(s)

Imprimir

  Ejecutar archivo con permisos de administardor en equipo remoto
Enviado por: cucuru - 15-12-2017, 09:51 AM - Foro: General - Respuestas (1)

Hola , os pongo en actecedentes .
Tengo un servir con ubuntu y mysql , y una conexion entre el servidor y los clientes que son windows , desde el servidor bajo demanda y mediante la conexion (script cliente en python en el servidor ) el servidor solicita la ejecucion de un archivo ( en el cliente hay un script servidor en python compilado con py2exe(si no recuerdo mal el nombre) que esta escuchando por un puerto la peticion del servidor ) cuando el servidor lo solicita el cliente lo ejecuta y le devuelve el resultado al servidor . Todo esto funciona a la perfeccion .

Todo esto se ha realizado para tener acceso a un lector de dni que esta en el pc cliente y que cuando se solicita desde la web una lectura del documento mediante la conexion y un lector de dni tb desarrollado en python este le devuelva al servidor los datos necesarios para continuar con el proceso de verificacion del usuario.

Pues bien de vez en cuando y no en todos los clientes , windows hace aparecer unas dll que bloquean la lectura dando un error en la pagina web de datos no leidos (esto es controlado por mi ) , la solucion consiste en renombrar esa dll con lo que se quita el bloqueo en el lector y se vuelven a obtener los datos de manera correcta , la intencion es desde php (web) lanzar un exec al cliente para que ejecute el archivo que corrige el problema y aqui es donde estoy atascado.

El archivo hay que ejecutarlo como administrador y es lo que no consigo hacer desde python , es decir , necesito lanzar la ejecucion de un bat que renombra las dll como administrador atraves de la conexion , si me conecto al pc del cliente y ejecuto el archivo como administrador soluciona el problema , pero tengo mas de 200 pcs con este sistema y es inviable cuando hay este problema ir uno a uno lanzando el proceso.


Alguna idea ?

Imprimir

  Mysql y Python
Enviado por: Jorge1986 - 14-12-2017, 08:02 AM - Foro: General - Respuestas (11)

Hola, 

Este código está asociado a una base de datos en Mysql que previamente está creada en mi ordenador el campo ID de la base se basa en INT mientras que el resto de campos se corresponden con VARCHAR 100. En este programa la idea es la siguiente: 

1. Se tienen que crear 10 registros en la base de datos directamente sin introducirlos a mano y creo que eso ya está.

2. El programa tiene que permitir introducir datos por pantalla y teclado: Creo que eso lo tengo, pero tengo un problema con el ID. Necesito que siga la numeración de los que ya están introducidos, es decir si en los que ya he metido previamente hemos terminado en el ID 10, el siguiente que metamos por teclado será el 11, el siguiente el 12 ¿Cómo puedo resolver esto con Python? Otra de las peculiaridades que tiene la introducción por teclado sería evitar dejar uno de los campos en blanco...siempre tienen que estar todos rellenos. Enviando un aviso al usuario de que no se efectuará el insert. 

3. Necesito crear un bucle en el que te deje meter varios registros, pero que llegado a un punto te deje salir de él y cerrar el programa.

4. Final print una tabla de datos.  

Un saludo y dejo el código que he escrito. 

Código:
#!/usr/python
# -*- coding: utf-8 -*-

#Queda hacer por hacer:
    #ID
    #bucle para introducir varios registros tipo basta
    #Si se introduce un valor en blanco para cualquier campo
        #no se efectuará el insert y se enviará al usuario un aviso advirtiendo que no se ha hecho
import MySQLdb

Conexion = MySQLdb.connect(host='localhost', user='conan',passwd='crom', db='DBdeConan') #Conexion con la base de datos

micursor = Conexion.cursor() #Cursor creado

#Insertando los 10 registros que pide el ejercicio
#Registro 1
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (1, \"Ejercito de Zombies\",\"Muertos Vivientes\",\"Desmembramiento a espada\");"
micursor.execute(query)
#Registro 2
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (2, \"Hombre lobo\",\"Licantropo\",\"Bala de plata\");"
micursor.execute(query)
#Registro 3
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (3, \"Vampiro feo\",\"Muertos Vivientes\",\"Estaca de madera\");"
micursor.execute(query)
#Registro 4
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (4, \"Gran Zombie\",\"Muertos Vivientes\",\"Balazo en cabeza\");"
micursor.execute(query)
#Registro 5
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (5, \"Espiritu\",\"Muertos\",\"Reflejo espejo\");"
micursor.execute(query)
#Registro 6
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (6, \"Dracula\",\"Muertos Vivientes\",\"Estaca de madera\");"
micursor.execute(query)
#Registro 7
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (7, \"Vampiro\",\"Muertos Vivientes\",\"Estaca de madera\");"
micursor.execute(query)
#Registro 8
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (8, \"Crinos\",\"Licantropo\",\"Bala de plata\");"
micursor.execute(query)
#Registro 9
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (9, \"Hispo\",\"Licantropo\",\"Bala de plata\");"
micursor.execute(query)
#Registro 10
query= "INSERT INTO Victimas (id,Nombre,Profesion,Muerte) VALUES (10, \"Lobo\",\"Animales\",\"Espada\");"
micursor.execute(query)

Conexion.commit()

#Insertar registro de forma manual

Nombre= raw_input ("Ingrese el nombre de la victima:")
Profesion= raw_input ("Ingrese la profesion de la victima:")
Muerte= raw_input ("Ingrese la causa de la muerte:")
query = "INSERT INTO Victimas (id, Nombre, Profesion, Muerte)\
          VALUES('%s','%s','%s','%s')" % \
          (id, Nombre, Profesion, Muerte)
micursor.execute(query)
Conexion.commit() #Hacer efectiva la escritura de datos

#imprimir registros
query= "SELECT * FROM Victimas";
micursor.execute(query)
registros= micursor.fetchall()
print registros

#Final base y borrado
query= "DELETE FROM Victimas";
micursor.execute(query)
Conexion.commit()

Imprimir