如何创建一个函数,在具有特定字符的大多数实例的文本文件中查找文本行。该函数接受两个参数,一个文本文件名和字符,并输出出现最多字符的行
到目前为止f = open("filename.txt", "r")
character = input("Enter character: ")
num_chars = 0
lines = f.readlines()
for lines in f:
for char in line:
if char == character.lower():
num_chars += 1
这会打印出文本文件中出现的总数,我无法弄清楚如何正确地执行此操作
答案 0 :(得分:3)
一些提示:
max()
接受可迭代和关键功能。在您的情况下,iterable是文件对象,key函数是一个计算字符的函数。
要计算一行中单个字符的出现次数,可以使用count()
字符串方法。要单独计算大小写,请先在整个字符串上使用lower()
。
答案 1 :(得分:2)
以下是一个例子:
In [1]: def most(fname, char):
...: with open(fname) as f:
...: return max(f, key = lambda l: l.count(char))
...:
请注意,它不会进行大小写转换,也不会从最后删除换行符(读者练习)。
In [2]: !cat file.txt
foo
bar
In [3]: most('file.txt', 'o')
Out[3]: 'foo\n'
In [4]: most('file.txt', 'b')
Out[5]: 'bar\n'