Python - Como puedo abrir un archivo seleccionado por el usuario y que el programa lo lea y lo ejecute

 
Vista:

Como puedo abrir un archivo seleccionado por el usuario y que el programa lo lea y lo ejecute

Publicado por Anishoond (4 intervenciones) el 22/09/2017 22:30:48
Buenas tardes, estoy haciendo un programa que solo lea cierto tipo de extension(.txt o .csv) eso ya lo tengo, el problema es que despues de que el programa lea y muestre en una lista los tipos de extensiones elegidos por el usuario, el usuario debe de elegir que archivo desea escoger y el programa leerlo.
Miren lo que tengo hasta ahora
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import os
 
# guardo la ruta de trabajo
mi_ruta = os.getcwd()
# listo los archivos en la ruta 
archivos = os.listdir(mi_ruta)
 
#Contador para saber cuantos archivos .txt y. csv hay en la carpeta
cont = 0
 
# imprimo la lista de los archivos con un un indice
for i in range(len(archivos)):
    if (archivos[i][-3:] == 'txt') or (archivos[i][-3:] == 'csv'):
        print(i,archivos[i])
        cont = cont + 1
 
# valida la entrada
# la entrada debe ser numerica dentro de un rango de valores
n = -1
while n >= len(archivos) or n < 0:
    print("Ingrese un valor entre",0,"y" , cont-1 )
    try:
        n = int(input("Digite el número del archivo que quiere abrir: "))
    except:
        print("Ingrese valor numerico")
 
print("El archivo selecionado es: ",archivos[n])
 
file = open("m", "r")
file.close()
De antemano gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Como puedo abrir un archivo seleccionado por el usuario y que el programa lo lea y lo ejecute

Publicado por tincopasan (1082 intervenciones) el 24/09/2017 04:32:51
para mí hay varias cosas que cambiaría, pero siguiendo tu código le hice unas pequeñas modificaciones:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#-*- coding:utf -8 -*-
import os
# guardo la ruta de trabajo
mi_ruta = os.getcwd()
# listo los archivos en la ruta 
archivos = os.listdir(mi_ruta)
#Contador para saber cuantos archivos .txt y. csv hay en la carpeta
cont = 0
# imprimo la lista de los archivos con un un indice
for i in range(len(archivos)):
    if (archivos[i][-3:] == 'txt') or (archivos[i][-3:] == 'csv'):
        print(i,archivos[i])
        cont = cont + 1
# valida la entrada
# la entrada debe ser numerica dentro de un rango de valores
n = -1
while n >= len(archivos) or n < 0:
    print("Ingrese un valor entre",0,"y" , cont-1 )
    try:
        n = int(input("Digite el número del archivo que quiere abrir: "))
        m = archivos[n]
    except:
        print("Ingrese valor numerico")
print("El archivo selecionado es: ",archivos[n])
file = open(m, "r")
for linea in file:
    print(linea)
file.close()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de abzerox
Val: 425
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Como puedo abrir un archivo seleccionado por el usuario y que el programa lo lea y lo ejecute

Publicado por abzerox (109 intervenciones) el 24/09/2017 04:56:43
Hola, modifique un poco tu código, prueba con esto y nos comentas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import os
 
files = [x for x in os.listdir() if x[-3:] in ['txt', 'csv']]
files.sort()
 
if files:
    for i, v in enumerate(files):
        print("[" + str(i) + "]", v)
    while True:
        try:
            n = int(input("Digite el número del archivo que quiere abrir: "))
            if n < len(files) and n >= 0:
                break
            else:
                print("El valor ingresado no es valido")
        except ValueError:
            print("El valor ingresado no es valido")
    with open(files[n]) as f:
        print(f.read())
else:
    print("No hay archivos disponibles")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha disminuido su posición en 9 puestos en Python (en relación al último mes)
Gráfica de Python

Como puedo abrir un archivo seleccionado por el usuario y que el programa lo lea y lo ejecute

Publicado por jose (3 intervenciones) el 04/10/2017 07:26:41
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar