Python - Obtener la lista de palabras de un archivo de texto

 
Vista:

Obtener la lista de palabras de un archivo de texto

Publicado por Guillermo (1 intervención) el 25/02/2020 15:23:08
Saludos, espero que se encuentren muy bien!
Escribo en este foro para ver si alguien puede aclarar mi duda....
Me han puesto a crear un juego llamado ''El ahorcado'' con las siguientes condiciones: Solo 3 intentos, se deberá mostrar el 30% de la palabra y las palabras estarán en una lista. Dicha lista se deberá traer desde un archivo de texto, y es precisamente en esta última condición, donde tengo mis dudas.
Ya tengo el programa funcionando, con una lista de palabras que almacené en una variable, pero según me piden, debo arrastrar esa lista de palabras desde un archivo de texto. He intentado un :poner achivo = open("palabras.txt") en lugar de la lista de palabras y no me ha funcionado. Aquí les dejo el código del programa para ver si alguien puede ayudarme:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import random
import os
 
archivo = open("palabras.txt")
archivo.read()
 
palabras = ["ANIMAL", "VETERINARIA", "CANIVALISMO", "MARIPOSA", "CLINICA",
            "OTORRINOLARINGOLOGO", "EDIFICACION", "METROPOLITANO", "ROSQUILLA",
            "BIGBLUE", "ASCENSOR", "CRUCIGRAMA", "MANIPULACION", "ESTRUCTURA"]
 
palabra = list(random.choice(palabras))
 
horca = ["        !======N",
         "               N",
         "               N",
         "               N",
         "               N",
         "               N",
         "      _________N"]
 
ahorcado = ["        !======N",
            "        0       ",
            "       /|\      ",
            "     _ / \_     "]
 
letras_todas = []
fallos = 1
 
resultado = []
 
for i in range (len(palabras)):
    resultado.append("_")
 
while True:
    os.system("cls")
 
    print("**********************")
    print("**JUEGO DEL AHORCADO**")
    print("**********************")
 
    for i in range(fallos):
        print(ahorcado[i])
    for i in range(len(horca)-fallos):
        print(horca[i+fallos])
 
    print()
 
 
    ##Mostrar el resultado que se va obteniendo
 
    print("    ", end= " ")
    for i in resultado:
        print(i, end= " ")
 
    print()
    print()
 
 
    if resultado == palabras:
        print("****************")
        print("***HAS GANADO***")
        print("****************")
        break
    if fallos >3:
        print("La palabra era: ", "".join(palabra))
        print("*****************")
        print("***HAS PERDIDO***")
        print("*****************")
        break
 
    while True:
        letra_usuario_sformato = input("Dime una letra")
        letra_usuario = letra_usuario_sformato.upper()
        if len(letra_usuario) != 1:
            print("Introduce una letra")
        elif letra_usuario in letras_todas:
            print("Esa letra ya la has dicho...")
        elif letra_usuario not in "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ":
            print(" Sólo introduzca una letra")
        else:
            letras_todas.append(letra_usuario)
            break
 
    for i in range(len(palabra)):
        if palabra[i] == letra_usuario:
            resultado[i]= letra_usuario
 
    if letra_usuario not in palabra:
        fallos += 1
 
    print()
    print()
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
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Obtener la lista de palabras de un archivo de texto

Publicado por joel (901 intervenciones) el 25/02/2020 19:47:50
Hola Guillermo en vez de un archivo de texto puede ser un archivo de python... algo así:

tu archivo:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import random
import os
from palabras import palabras
 
palabra = list(random.choice(palabras))
 
horca = ["        !======N",
         "               N",
         "               N",
         "               N",
         "               N",
         "               N",
         "      _________N"]
 
ahorcado = ["        !======N",
            "        0       ",
            "       /|\      ",
            "     _ / \_     "]
 
letras_todas = []
fallos = 1
 
resultado = []
 
for i in range (len(palabras)):
    resultado.append("_")
 
while True:
    os.system("cls")
 
    print("**********************")
    print("**JUEGO DEL AHORCADO**")
    print("**********************")
 
    for i in range(fallos):
        print(ahorcado[i])
    for i in range(len(horca)-fallos):
        print(horca[i+fallos])
 
    print()
 
 
    ##Mostrar el resultado que se va obteniendo
 
    print("    ", end= " ")
    for i in resultado:
        print(i, end= " ")
 
    print()
    print()
 
 
    if resultado == palabras:
        print("****************")
        print("***HAS GANADO***")
        print("****************")
        break
    if fallos >3:
        print("La palabra era: ", "".join(palabra))
        print("*****************")
        print("***HAS PERDIDO***")
        print("*****************")
        break
 
    while True:
        letra_usuario_sformato = input("Dime una letra")
        letra_usuario = letra_usuario_sformato.upper()
        if len(letra_usuario) != 1:
            print("Introduce una letra")
        elif letra_usuario in letras_todas:
            print("Esa letra ya la has dicho...")
        elif letra_usuario not in "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ":
            print(" Sólo introduzca una letra")
        else:
            letras_todas.append(letra_usuario)
            break
 
    for i in range(len(palabra)):
        if palabra[i] == letra_usuario:
            resultado[i]= letra_usuario
 
    if letra_usuario not in palabra:
        fallos += 1
 
    print()
    print()

palabras.py
1
2
3
palabras = ["ANIMAL", "VETERINARIA", "CANIVALISMO", "MARIPOSA", "CLINICA",
            "OTORRINOLARINGOLOGO", "EDIFICACION", "METROPOLITANO", "ROSQUILLA",
            "BIGBLUE", "ASCENSOR", "CRUCIGRAMA", "MANIPULACION", "ESTRUCTURA"]
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Obtener la lista de palabras de un archivo de texto

Publicado por joel (901 intervenciones) el 25/02/2020 19:55:45
Si tiene que ser un archivo de texto, tendras que guardar de alguna manera las palabras y luego obtenerlas... algo así:

tu archivo:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import random
import os
 
archivo = open("palabras.txt")
palabras=[i for i in archivo.read().split("\n")]
archivo.close()
 
palabra = list(random.choice(palabras))
 
horca = ["        !======N",
         "               N",
         "               N",
         "               N",
         "               N",
         "               N",
         "      _________N"]
 
ahorcado = ["        !======N",
            "        0       ",
            "       /|\      ",
            "     _ / \_     "]
 
letras_todas = []
fallos = 1
 
resultado = []
 
for i in range (len(palabras)):
    resultado.append("_")
 
while True:
    os.system("cls")
 
    print("**********************")
    print("**JUEGO DEL AHORCADO**")
    print("**********************")
 
    for i in range(fallos):
        print(ahorcado[i])
    for i in range(len(horca)-fallos):
        print(horca[i+fallos])
 
    print()
 
 
    ##Mostrar el resultado que se va obteniendo
 
    print("    ", end= " ")
    for i in resultado:
        print(i, end= " ")
 
    print()
    print()
 
 
    if resultado == palabras:
        print("****************")
        print("***HAS GANADO***")
        print("****************")
        break
    if fallos >3:
        print("La palabra era: ", "".join(palabra))
        print("*****************")
        print("***HAS PERDIDO***")
        print("*****************")
        break
 
    while True:
        letra_usuario_sformato = input("Dime una letra")
        letra_usuario = letra_usuario_sformato.upper()
        if len(letra_usuario) != 1:
            print("Introduce una letra")
        elif letra_usuario in letras_todas:
            print("Esa letra ya la has dicho...")
        elif letra_usuario not in "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ":
            print(" Sólo introduzca una letra")
        else:
            letras_todas.append(letra_usuario)
            break
 
    for i in range(len(palabra)):
        if palabra[i] == letra_usuario:
            resultado[i]= letra_usuario
 
    if letra_usuario not in palabra:
        fallos += 1
 
    print()
    print()


palabras.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ANIMAL
VETERINARIA
CANIVALISMO
MARIPOSA
CLINICA
OTORRINOLARINGOLOGO
EDIFICACION
METROPOLITANO
ROSQUILLA
BIGBLUE
ASCENSOR
CRUCIGRAMA
MANIPULACION
ESTRUCTURA
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