我正在尝试创建一个程序来计算行数,计算特定单词,然后告诉您它在哪一行。现在我做了前两个,但是我不知道如何找到这个词在哪一行。有什么建议么?这是我当前的代码:
name = input('Enter name of the text file: ')+'.txt'
file = open(name,'r')
myDict = {}
linenum = 0
for line in file:
line = line.strip()
line = line.lower()
line = line.split()
linenum += 1
print(linenum-1)
count = 0
word = input('enter the word you want us to count, and will tell you on which line')
#find occurence of a word
with open(name, 'r') as inF:
for line in inF:
if word in line:
count += 1
#find on which line it is
P.S:我想细化该行的索引号,而不是打印整行
可以通过在迭代文件行时跟踪当前行号来修改代码以显示特定单词出现的行号。以下是如何执行此操作的方法:
name = input('输入文本文件名:') + '.txt'
file = open(name, 'r')
myDict = {}
linenum = 0
for line in file:
line = line.strip()
line = line.lower()
line = line.split()
linenum += 1
print(linenum-1)
count = 0
word = input('输入要计数的单词,我们会告诉它在哪一行:')
# 查找单词的出现次数
with open(name, 'r') as inF:
for linenum, line in enumerate(inF, 1): # 从 1 开始枚举行号
if word in line.lower().split(): # 检查该词是否存在于该行中
count += 1
print(f"单词'{word}'在第 {linenum} 行找到。") # 打印行号
if count == 0:
print(f"该词'{word}'在文件中未找到。")
在这个改进后的代码中:
-
enumerate(inF, 1)
:我们使用enumerate
函数来迭代文件中的行,并提供一个可选的start
参数,该参数设置为1
。这确保行号从1
而不是默认的0
开始。 -
line.lower().split()
:我们在每一行上使用lower()
方法,以便我们的搜索不区分大小写。我们还使用split()
将该行分成一个单词列表,以便我们可以使用in
运算符检查该词是否存在。 -
print(f"单词 '{word}' 在第 {linenum} 行找到。")
:如果在当前行中找到该词,我们将打印包含行号的消息。
现在,代码将打印找到该词的每一行的行号。
标签:python From: 28620952