Extraer una palabra o string aleatoria de una línea en un archivo de texto en Python

El manejo de archivos en Python es realmente simple y fácil de implementar. Para extraer una palabra o string aleatoria de un archivo de texto, primero abriremos el archivo en modo de lectura y luego usaremos los métodos en el módulo aleatorio de Python para elegir una palabra aleatoria. 

Hay varias formas de realizar esta operación:

Este es el archivo de texto que leeremos:

Método 1: Usar random.choice()

Pasos:

  1. Con la función, abra el archivo en modo de lectura. La función with se encarga de cerrar el archivo automáticamente.
  2. Lea todo el texto del archivo y guárdelo en una string
  3. Divide la string en palabras separadas por espacios.
  4. Use random.choice() para elegir una palabra o string.

Python

# Python code to pick a random
# word from a text file
import random
  
# Open the file in read mode
with open("MyFile.txt", "r") as file:
    allText = file.read()
    words = list(map(str, allText.split()))
  
    # print random string
    print(random.choice(words))

Nota: La función split() , por defecto, se divide por espacios en blanco. Si desea cualquier otro delimitador como el carácter de nueva línea, puede especificarlo como argumento.

Producción:

Salida para dos ejecuciones de muestra

Lo anterior se puede lograr con solo una línea de código como esta: 

Python

# import required module
import random
  
# print random word
print(random.choice(open("myFile.txt","r").readline().split()))

Método 2: Usar random.randint() 

Pasos:

  1. Abra el archivo en modo de lectura usando la función
  2. Almacene todos los datos del archivo en una string y divida la string en palabras.
  3. Cuente el número total de palabras.
  4. Use random.randint() para generar un número aleatorio entre 0 y word_count.
  5. Imprima la palabra en esa posición.

Python

# using randint()
import random
  
# open file
with open("myFile.txt", "r") as file:
    data = file.read()
    words = data.split()
      
    # Generating a random number for word position
    word_pos = random.randint(0, len(words)-1)
    print("Position:", word_pos)
    print("Word at position:", words[word_pos])

Producción:

Salida para dos ejecuciones de muestra

Publicación traducida automáticamente

Artículo escrito por anweshamohanty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *