Problema abrir archivo solicitando el nombre

Iniciado por yukardo, 22 Septiembre 2016, 14:10 PM

0 Miembros y 1 Visitante están viendo este tema.

yukardo

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 (python) [Seleccionar]
entrada = input("Introduzca el nombre del archivo: ")

#abrimos el archivo seleccionado

try:
   arch = open(entrada)
   
   for linea in arch:
       if linea.starwith("X-DSPAM-Confidence:"):
           lista = linea.split(" ", 1)
           #finlista.append(lista[1])
           #counter += 1
           
   #print counter
   print (lista)
   
except:
   
   print ("Error al abrir. Archivo no encontrado o nombre incorrecto", entrada)
   exit()


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

Muchas Gracias.

Saludos,
   


Mod: Los códigos deben ir en etiquetas GeSHi

engel lex

que tal si quitas el try catch y vez directamente cual es el error que te arroja?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

tincopasan

#2
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 (python) [Seleccionar]
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 (python) [Seleccionar]
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.