Pulling a random word or string from a line in a text file in Python
Last Updated :
11 Dec, 2020
File handling in Python is really simple and easy to implement. In order to pull a random word or string from a text file, we will first open the file in read mode and then use the methods in Python’s random module to pick a random word.
There are various ways to perform this operation:
This is the text file we will read from:
Method 1: Using random.choice()
Steps:
- Using with function, open the file in read mode. The with function takes care of closing the file automatically.
- Read all the text from the file and store in a string
- Split the string into words separated by space.
- Use random.choice() to pick a word or string.
Python
import random
with open ( "MyFile.txt" , "r" ) as file :
allText = file .read()
words = list ( map ( str , allText.split()))
print (random.choice(words))
|
Note: The split() function, by default, splits by white space. If you want any other delimiter like newline character you can specify that as an argument.
Output:
Output for two sample runs
The above can be achieved with just a single line of code like this :
Python
import random
print (random.choice( open ( "myFile.txt" , "r" ).readline().split()))
|
Method 2: Using random.randint()
Steps:
- Open the file in read mode using with function
- Store all data from the file in a string and split the string into words.
- Count the total number of words.
- Use random.randint() to generate a random number between 0 and the word_count.
- Print the word at that position.
Python
import random
with open ( "myFile.txt" , "r" ) as file :
data = file .read()
words = data.split()
word_pos = random.randint( 0 , len (words) - 1 )
print ( "Position:" , word_pos)
print ( "Word at position:" , words[word_pos])
|
Output:
Output for two sample runs
Share your thoughts in the comments
Please Login to comment...