如何在txt文件中获得最长的单词


article = open("article.txt", encoding="utf-8")
for i in article:
print(max(i.split(), key=len))

文本用换行符书写,它给出每行中最长的单词。如何从所有文本中获得最长的单词?

一种方法是将整个文本文件读入Python字符串,删除换行符,然后找到最大的单词:

with open('article.text', 'r') as file:
data = re.sub(r'r?n', '', file.read())
longest_word = max(re.findall(r'w+', data), key=len)

longest = 0
curr_word = ""
with open("article.txt", encoding="utf-8") as f:
for line in f:
for word in line.split(" "):  # Use line-by-line generator to avoid loading large file in memory
word = word.strip()
if (wl := len(word)) > longest:  # Python 3.9+, otherwise use 2 lines
longest = wl
curr_word = word
print(curr_word)

您可以获取文件的整个文本,然后使用article.readline().split()

拆分它们,而不是遍历每行。
article = open("test.txt", encoding="utf-8")
print(max(article.readline().split(), key=len))
article.close()

有很多方法可以做到这一点。

with open("article.txt", encoding="utf-8") as article:
txt =  [word for item in article.readlines() for word in item.split(" ")]

biggest_word = sorted(txt, key=lambda word: (-len(word), word), )[0]

请注意,我使用with语句在读取完成时关闭与文件的连接,我使用readlines读取整个文件,返回一个行列表,并且我两次解包拆分项以获得一个项目列表。最后一行代码对列表进行排序,并使用-len(word)将排序从升序改为降序。

我希望这是你正在寻找的:)

如果你的文件足够大,可以一次读取所有行。

file = open("article.txt", encoding="utf-8", mode='r')
all_text = file.read()
longest = max(i.split(), key=len)
print(longest)

相关内容

最新更新