Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: yukardo en 22 Septiembre 2016, 14:10 pm



Título: Problema abrir archivo solicitando el nombre
Publicado por: yukardo en 22 Septiembre 2016, 14:10 pm
Buenos Días,

Estoy trabajando en python 3 y quiero solicitarle al usuario que indique el nombre del archivo que desea abrir.

Luego voy a realizar unas acciones con el archivo, pero el problema que se me presenta es que no me dice que no puede abrir el archivo. Tengo el archivo dentro de la carpeta donde tengo el código y le coloco el mismo nombre y no funciona

El código que he destinado para eso es el siguiente:

Código
  1. entrada = input("Introduzca el nombre del archivo: ")
  2.  
  3. #abrimos el archivo seleccionado
  4.  
  5. try:
  6.    arch = open(entrada)
  7.  
  8.    for linea in arch:
  9.        if linea.starwith("X-DSPAM-Confidence:"):
  10.            lista = linea.split(" ", 1)
  11.            #finlista.append(lista[1])
  12.            #counter += 1
  13.  
  14.    #print counter
  15.    print (lista)
  16.  
  17. except:
  18.  
  19.    print ("Error al abrir. Archivo no encontrado o nombre incorrecto", entrada)
  20.    exit()

Espero me puedan ayudar, ya que soy nuevo en Python.

Muchas Gracias.

Saludos,
    


Mod: Los códigos deben ir en etiquetas GeSHi


Título: Re: Problema abrir archivo solicitando el nombre
Publicado por: engel lex en 22 Septiembre 2016, 15:35 pm
que tal si quitas el try catch y vez directamente cual es el error que te arroja?


Título: Re: Problema abrir archivo solicitando el nombre
Publicado por: tincopasan en 22 Septiembre 2016, 20:42 pm
como bien te dijo engel lex lo primero que deberías hacer es ejecutar tu código sin el try para que puedas identificar mejor el error(sobre todo si el código es largo para revisar), en este caso que son pocas líneas es fácil encontrar un error grosero en línea 9 :

Código
  1. if linea.starwith("X-DSPAM-Confidence:"):

¿qué es starwith? salvo que sea una función que hayas declarado, no existe! supongo que debería ser:

Código
  1. if linea.startswith("X-DSPAM-Confidence:"):

otra cosa, estás tratando de mostrar una lista que se crea a partir de una condición, por lo tanto si no se cumple te dará error.

Edito: existen mejores formas que el try para saber si un archivo existe, ya que así no ves donde está el error.