首页 > 解决方案 > 如何使用python从.txt文件中提取随机单词?

问题描述

我有一个如下所示的 .txt 文件:

Title       | Author

-------------------------
title1      | author1

title2      | author2


...        ...

titleN      | authorN

我想从这个文件中提取 100 个随机标题,如下所示:

title1

title2

...

title100

我试过这个:

import random
with open('file.txt','r') as f:
  title = f.read().split('|')

for i in range (0,100):
 print(random.choice(title))

但在执行过程中,程序还会随机打印作者姓名。我怎样才能避免这种情况?

标签: pythonpython-3.x

解决方案


当你这样做时:

with open(path,'r') as f:
    title = f.read().split('|')

f.read()将整个文件作为字符串提供给您。拆分它|会给出一个包含作者和标题(以及新行和空格)的列表。

相反,您可以随时处理线条并拆分。有类似的东西:

with open(path) as f:
    titles = [l.split('|')[0].strip() for l in f]

这将为您提供一个干净的标题列表,例如:

['title1', 'title2', 'title3', 'title4', 'title5']

有了它,您可以使用它random.sample()来获取您想要的任意数量的随机项目。

import random

path = "path/to/file.txt"
n = 100

with open(path) as f:
    titles = [l.split('|')[0].strip() for l in f]

random.sample(titles, n)

这假设您不想要重复项。


推荐阅读