elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  (solucionado) [python] limpiar la pantalla
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: (solucionado) [python] limpiar la pantalla  (Leído 28,422 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
(solucionado) [python] limpiar la pantalla
« en: 9 Febrero 2012, 15:32 pm »

¿Que estoy haciendo mal?

Código
  1. #!usr/bin/python
  2.  
  3. import os
  4.  
  5. print " Test "
  6.  
  7. os.system.cls


« Última modificación: 9 Febrero 2012, 16:37 pm por EleKtro H@cker » En línea

Jirp96

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: [python] limpiar la pantalla
« Respuesta #1 en: 9 Febrero 2012, 16:21 pm »

Hola!
Pues lo que estas haciendo mal, es llamar a la funcion system.
Estas llamandola así:
Código
  1. os.system.cls

Cuando la llamas asi, estas llamando al atributo "cls", dentro del objeto system, dentro del módulo os. De hecho, para python lo que haces esta "bien"(por ej, asi puedes ver los atributos de las clases), pero, al no existir "cls" dentro de system, da error.

Mira esto:
Código
  1. >>> import os
  2. >>> help(os.system)
  3. Help on built-in function system in module nt:
  4.  
  5. system(...)
  6.    system(command) -> exit_status
  7.  
  8.    Execute the command (a string) in a subshell.
  9.  
  10. >>> os.system("cls")
  11. 0
  12. >>> #como ves, no muestra el resultado de "cls", solo el "exit_status"(0)*
  13.  

Entonces, debes llamar a la funcion system así: os.system(comando_a_ejecutar)
*comando_a_ejecutar tiene que ser una cadena, como "cls"(con las comillas).

Espero haberte ayudado.
Saludos!
EDITO: *Si lo ejecuto desde IDLE, no muestra el resultado de cls ni ningun otro comando, peero, si ejecutas python desde la consola funciona sin problemas  :o


« Última modificación: 9 Febrero 2012, 16:27 pm por Jirp96 » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [python] limpiar la pantalla
« Respuesta #2 en: 9 Febrero 2012, 16:36 pm »

perfecto gracias

He visto ejemplos y me he dado cuenta que también funciona así los atributos, con una comilla:

Código
  1. os.system('cls')

No se si la diferencia de usar 1 comilla o comillas dobles puede afectar mucho xD

Solucionado.
En línea

Jirp96

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: (solucionado) [python] limpiar la pantalla
« Respuesta #3 en: 9 Febrero 2012, 16:45 pm »

Hola!
Segun se, no tiene ninguna diferencia usar comillas simples o dobles, lo que si, te permiten escribir cosas así:

Código
  1. >>> print "hola \"mundo\""
  2. hola "mundo"
  3. >>> print 'hola \'mundo\''
  4. hola 'mundo'
  5. >>>

de esta forma:

Código
  1. >>> print "hola 'mundo'"
  2. hola 'mundo'
  3. >>> print 'hola "mundo"'
  4. hola "mundo"
  5. >>>

La segunda forma(alternando las comillas) queda mas facil de leer.
Es la unica diferencia que se me ocurre. :xD
Saludos!
En línea

WaAYa HaCK

Desconectado Desconectado

Mensajes: 292


Arduino, Android and music


Ver Perfil
Re: [python] limpiar la pantalla
« Respuesta #4 en: 9 Febrero 2012, 16:47 pm »

Eso es porque en IDLE, los comandos del sistema que devuelven salida no la vuelcan en la GUI, sólo comprueban el estado de salida (bien o mal).

Por ejemplo:
Código
  1. import os
  2. os.system("dir") # devuelve 0
  3. os.system("dir & pause") # abre un CMD con un dir, y después devuelve 0
Esto hablando desde IDLE.

Lo que hago arriba no es muy correcto: si quieres mostrar un listado de archivos, la función os.listdir("R:/uta/al/directorio/") devuelve una lista con los archivos y directorios. En Python, aunque uses Windows, los slash deben ir así /.


Y lo de las comillas:
Código
  1. "Hola'fsgefgh'sfvgerdfgte'a"
  2. 'hola"fsbhdehet"egrghre"a'

Saludos!
En línea

La cacatúa yoyó es nueva en el zoo!
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: (solucionado) [python] limpiar la pantalla
« Respuesta #5 en: 9 Febrero 2012, 16:49 pm »

perfecto gracias

He visto ejemplos y me he dado cuenta que también funciona así los atributos, con una comilla:

Código
  1. os.system('cls')

No se si la diferencia de usar 1 comilla o comillas dobles puede afectar mucho xD

Solucionado.

Advertencia - mientras estabas escribiendo, fueron publicadas 2 respuestas. Probablemente desees revisar tu mensaje.

Sobre las comillas: http://elclubdelautodidacta.es/wp/2011/10/python-capitulo-22-comillas-simples-dobles-y-triples/

Código
  1. os.system('cls')
esa manera de hacerlo es dependiente de la plataforma y va a tirar al suelo la portabilidad de la que se hace gala en Python, además de ser una llamada costosa de realizar. Una forma de hacerlo es haciendo un bucle que inserte retornos de carro en el bufer de entrada para "simular" una limpieza de pantalla.

Saludos
« Última modificación: 9 Febrero 2012, 16:53 pm por RyogiShiki » En línea

WaAYa HaCK

Desconectado Desconectado

Mensajes: 292


Arduino, Android and music


Ver Perfil
Re: (solucionado) [python] limpiar la pantalla
« Respuesta #6 en: 9 Febrero 2012, 16:50 pm »

Yo estaba haciendo un script para pasar archivos por internet y usaba argumentos. Cuando arrastras un archivo a la consola de Python, se coloca con comillas dobles por defecto: debes prever esto si vas a usar el sys.
En línea

La cacatúa yoyó es nueva en el zoo!
Jirp96

Desconectado Desconectado

Mensajes: 46


Ver Perfil
Re: (solucionado) [python] limpiar la pantalla
« Respuesta #7 en: 9 Febrero 2012, 16:56 pm »

Hola!
@WaAYa HaCK: Sobre los slash, en windows tambien podes escaparlos con otro slash y(al menos a mi) funcionan sin problemas(aunque queda mucho mas legible usar "/" :xD)

Código
  1. >>> os.listdir("C:\\")
  2.  
  3. >>> os.listdir("C:/")


Saludos!
En línea

WaAYa HaCK

Desconectado Desconectado

Mensajes: 292


Arduino, Android and music


Ver Perfil
Re: (solucionado) [python] limpiar la pantalla
« Respuesta #8 en: 9 Febrero 2012, 16:57 pm »

Ya, pero yo me he acostumbrado así y mira...  :rolleyes:
En línea

La cacatúa yoyó es nueva en el zoo!
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: (solucionado) [python] limpiar la pantalla
« Respuesta #9 en: 9 Febrero 2012, 17:33 pm »

Código
  1. os.system('cls')
esa manera de hacerlo es dependiente de la plataforma y va a tirar al suelo la portabilidad de la que se hace gala en Python, además de ser una llamada costosa de realizar. Una forma de hacerlo es haciendo un bucle que inserte retornos de carro en el bufer de entrada para "simular" una limpieza de pantalla.

O esto:

Código
  1. print "\n " +500

No funciona xD, aún no se la sintaxis bien pero el code era algo parecido y escribía 500 líneas sin contenido, supongo que ya sabrán de que hablo xD

Aunque prefiero usar CLS de momento

saludos
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
limpiar pantalla en java
Java
DANIELC01 0 10,040 Último mensaje 10 Febrero 2005, 12:50 pm
por DANIELC01
Limpiar pantalla en visual
Programación C/C++
¡Micronet! 0 9,004 Último mensaje 26 Diciembre 2010, 00:53 am
por ¡Micronet!
Cómo limpiar una pantalla
Noticias
wolfbcn 0 2,236 Último mensaje 26 Octubre 2012, 15:01 pm
por wolfbcn
Limpiar pantalla en Python
Scripting
Br1ant 5 5,435 Último mensaje 26 Julio 2014, 21:29 pm
por daryo
Duda - Una funcion para limpiar la pantalla en Python
Scripting
n1sen 3 3,034 Último mensaje 1 Agosto 2017, 11:35 am
por <Trocutor>
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines