Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Meta en 3 Noviembre 2010, 20:11 pm



Título: [Python] Leer documentos.
Publicado por: Meta en 3 Noviembre 2010, 20:11 pm
;)

Este ejercicio si que lo veo todo negro.

Ver ejercicio. (http://www.subeimagenes.com/img/gfsdfgfdgsfdg-5994.jpg)

Parace que hay qu ehacer algo de esto.

  • - Introduces el nombre de un fichero. (Por ejemplo, documento.doc).
    - Introducir el nombre de otro fichero. (Por ejemplo, tema.1.tex). (Este tiene dos puntos, ya me lió).
    - Si el fichero no tiene punto, la pantalla avisa que está vacío.
    - Cuando detecte un archivo con un punto, mostrará en pantalla sólo la extensión del archiv. (Por ejemplo, doc, tex).
;)


Título: Re: [Python] Leer documentos.
Publicado por: VirajeCR en 3 Noviembre 2010, 20:17 pm
Ey, le has entrado tanto a esto de Python que ya hasta ganas de leer el libro ese que estás leyendo me dan.  :laugh:


Título: Re: [Python] Leer documentos.
Publicado por: Meta en 3 Noviembre 2010, 20:42 pm
Ey, le has entrado tanto a esto de Python que ya hasta ganas de leer el libro ese que estás leyendo me dan.  :laugh:

Eres el segundo que ha dicho esto. jejeje.


Título: Re: [Python] Leer documentos.
Publicado por: braulio-- en 3 Noviembre 2010, 20:47 pm
Puedes empezar a comprobar el nombre del fichero por atrás, no sé si me entiendes. Si detecta un punto guardas la posición y la extensión es :
Código
  1. nombrefichero[posicion:]
Supongo que has llegado a los slices (creo recordar que se llamaban así)


Título: Re: [Python] Leer documentos.
Publicado por: Shell Root en 3 Noviembre 2010, 21:08 pm
Código
  1. # @Display the file extension
  2. # @Shell Root
  3. # @Python - 2010
  4.  
  5. import os
  6. sFileExtension = os.path.splitext('tema.1.tex')[1]
  7. print "La extension es: ", sFileExtension


Título: Re: [Python] Leer documentos.
Publicado por: Meta en 3 Noviembre 2010, 22:56 pm
Gracias a todos.

Este funciona.
Código
  1. data = nombre_del_archivo.split('.')
  2. if len(data) >= 2:
  3.    print data[-1]
  4. else:
  5.    print "Archivo sin extension"

http://docs.python.org/library/stdtypes.html#str.split



Edito:
Quiero hacerlo que cuando introduzca un archivo. Me de un resultado y me vuelva a preguntar siempre que introduzca el nombre del archivo. Lo he intentado hacer así pero no me sale.

Código
  1. nombre_del_archivo = raw_input('Nombre del archivo: ')
  2.  
  3. while nombre_del_archivo != '':
  4.    data = nombre_del_archivo.split('.')
  5.    if len(data) >= 2:
  6.        print data[-1]
  7.    else:
  8.        print 'Archivo sin extensión.'
  9.        break
  10. nombre_del_archivo = raw_input('Nombre del archivo: ')


Título: Re: [Python] Leer documentos.
Publicado por: Shell Root en 4 Noviembre 2010, 01:34 am
Código
  1. alex@shellroot:~/Escritorio$ python PoC.py
  2. Nombre del archivo: jpeg
  3. Archivo sin extension

FAIL!


Título: Re: [Python] Leer documentos.
Publicado por: .:WindHack:. en 4 Noviembre 2010, 01:45 am
¿Te refieres a esto Meta?

Código
  1. while True:
  2.    sFile = raw_input('Nombre del archivo: ')
  3.    sData = sFile.split('.')
  4.    if len(sData) >= 2:
  5.        print sData[-1]
  6.    else:
  7.        print 'Archivo sin extension.\n'

-
Código
  1. Microsoft Windows [Version 6.1.7600]
  2. Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.
  3.  
  4. C:\Users\WindHack>C:\Users\WindHack\Desktop\cTest.py
  5. Nombre del archivo: xD.txt
  6. txt
  7. Nombre del archivo: hola.jpg
  8. jpg
  9. Nombre del archivo: hola
  10. Archivo sin extension


Título: Re: [Python] Leer documentos.
Publicado por: Meta en 4 Noviembre 2010, 10:49 am
Ya me salió.

Código
  1. nombre_del_archivo = raw_input('Nombre del archivo: ')
  2.  
  3. while nombre_del_archivo != '':
  4.    data = nombre_del_archivo.split('.')
  5.    if len(data) >= 2:
  6.        print data[-1]
  7.    else:
  8.        print 'Archivo sin extensión.'
  9.  
  10.     nombre_del_archivo = raw_input('Nombre del archivo: ')


Título: Re: [Python] Leer documentos.
Publicado por: braulio-- en 4 Noviembre 2010, 13:46 pm
Código
  1. alex@shellroot:~/Escritorio$ python PoC.py
  2. Nombre del archivo: jpeg
  3. Archivo sin extension

FAIL!
Fail por?


Título: Re: [Python] Leer documentos.
Publicado por: Shell Root en 4 Noviembre 2010, 22:18 pm
Citar
Haz un programa que el nombre de un fichero y muestre por pantalla los caracteres que forman su EXTENSIÓN!

Ingresé jpeg y la salida fue Archivo sin extension


Título: Re: [Python] Leer documentos.
Publicado por: braulio-- en 4 Noviembre 2010, 22:24 pm
Si un archivo se llama "JPEG" no tiene extensión. La definición de extensión indica eso al menos y de cualquier forma "JPEG" no suele ponersele de extension a un archivo, es un método de compresión y un formato.


Título: Re: [Python] Leer documentos.
Publicado por: Shell Root en 5 Noviembre 2010, 02:28 am
*.docx, *.tiff, etc...


Título: Re: [Python] Leer documentos.
Publicado por: xassiz~ en 5 Noviembre 2010, 15:31 pm
*.docx, *.tiff, etc...
Tú escribiste el nombre de la extensión, no el nombre de un archivo.


Título: Re: [Python] Leer documentos.
Publicado por: Shell Root en 5 Noviembre 2010, 22:22 pm
Tú escribiste el nombre de la extensión, no el nombre de un archivo.
jajajajjaja WTF?. Por si no lo notastes, estaba hablando con @braulio--   :silbar:


Título: Re: [Python] Leer documentos.
Publicado por: braulio-- en 5 Noviembre 2010, 23:31 pm
Tú escribiste el nombre de la extensión, no el nombre de un archivo.
jajajajjaja WTF?. Por si no lo notastes, estaba hablando con @braulio--   :silbar:
Me da la impresión de que hay un poco de tensión. Dejadlo estar.

De cualquier forma no entiendo lo que me quieres decir con tu mensaje anterior.


Título: Re: [Python] Leer documentos.
Publicado por: Shell Root en 6 Noviembre 2010, 16:56 pm
A ver, no entiendo del porque tiene que aceptar solo extensiones con 3 caracteres después del punto, sí también existen de 4 y quizás de más. No se pueden excluir.


Título: Re: [Python] Leer documentos.
Publicado por: braulio-- en 6 Noviembre 2010, 19:01 pm
No tienen porque ser de 3, pero tienen que estar detrás de un punto.


Título: Re: [Python] Leer documentos.
Publicado por: Shell Root en 6 Noviembre 2010, 23:24 pm
No tienen porque ser de 3, pero tienen que estar detrás de un punto.
Por eso, en el código de @Meta, ingresa PoC.docx y te dirá que no tiene extensión. XD


Título: Re: [Python] Leer documentos.
Publicado por: braulio-- en 7 Noviembre 2010, 09:41 am
Eso es falso, compruébalo.