如何使用 Python 在文本文件中查找给定单词的行号?
在本文中,我们将向您展示如何使用 Python 从文本文件中获取给定单词所在的行号。
假设我们获取了一个名为 TextFile.txt 的文本文件,其中包含一些随机文本。我们将从文本文件中返回给定单词所在的行号
TextFile.txt
Good Morning TutorialsPoint This is TutorialsPoint sample File Consisting of Specific source codes in Python,Seaborn,Scala Summary and Explanation Welcome TutorialsPoint Learn with a joy
算法(步骤)
以下是执行所需任务要遵循的算法/步骤 −
创建一个变量来存储文本文件的路径。
创建一个变量(保存行号)并将其值初始化为 1。
输入单词作为静态/动态输入并将其存储在变量中。
使用open() 函数(打开文件并返回文件对象作为结果)通过传递文件名和模式作为参数以只读模式打开文本文件(此处"r"代表只读模式)。
with open(inputFile, 'r') as fileData:
使用 for 循环遍历文本文件的每一行。
使用 split() 函数(将字符串拆分为列表。我们可以定义分隔符;默认分隔符是任何空格)将文本文件的每一行拆分为一个单词列表并将其存储在变量中。
使用 if 条件语句和 "in" 关键字,检查给定的单词是否存在于上述单词列表中。
in 关键字有两种工作方式 -
in 关键字用于确定序列(列表、范围、字符串等)中是否存在值。
如果在相应行中找到给定的单词,则打印行号。
将行号的值增加 1。
使用 close() 函数关闭输入文件(用于关闭打开的文件)。
它还用于在 for 循环中迭代序列
示例
以下程序从文本文件中删除给定行,并在删除该行后打印结果文件内容 −
# input text file inputFile = "ExampleTextFile.txt" # 存储当前行号 lineNumber = 1 # 输入单词 givenWord = "TutorialsPoint" print('The word {', givenWord, '} is present in the following lines:') # 以只读模式打开给定文件。 with open(inputFile, 'r') as fileData: # 遍历文件的每一行 for textline in fileData: # 将行拆分为单词列表 wordsList = textline.split() # 检查给定单词是否存在于上述单词列表中 if givenWord in wordsList: # 如果找到给定单词,则打印行号 print(lineNumber) # 将 linenumber 的值增加 1 lineNumber += 1 # 关闭输入文件 fileData.close()
输出
执行时,上述程序将生成以下输出 -
The word { TutorialsPoint } is present in the following lines: 1 2 6
我们在本程序中读取了一个包含一些随机文本的文本文件。我们创建了一个变量来存储当前行号,并将其初始化为起始行号 1。我们逐行浏览文本文件,将每行分解为一个单词列表,并检查给定的单词是否在列表中。如果存在,它会打印当前行号。对于每一行,行号的值都会增加一。
我们从这篇文章中学习了如何读取文件、逐行遍历文件以及获取该行中的所有单词。一旦我们得到它们,我们就可以反转单词、更改大小写、检查元音、检索单词长度等等。我们还学习了如何计算行号以及如何在文件中搜索单词,这主要用于一些常见的日常应用中,例如在结果中查找名称、在某些代码中搜索关键字等。