python - 如何使用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))
但在执行过程中,程序还会随机打印作者姓名。我怎样才能避免这种情况?
解决方案
当你这样做时:
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)
这假设您不想要重复项。
推荐阅读
- c++ - C++ 中是否有一个函数可以获取无法更改的时间戳?(独立于互联网)
- python - 无法将大小为 470 的数组重塑为形状 (20)
- php - 使用 phpmailer 发送邮件时如何修复 SMTP 错误
- reactjs - ReactJS:如何从用户那里获取 JSON 条目并发布到 API?
- java - 如何从 Firebase 下载各种类型的文件(图像、视频、文本)并显示它们
- java - 如何使用reactor.netty ProxyProvider配置spring框架WebClient进行代理认证?
- reactjs - 您可以在 ApolloClient 的客户端解析器中访问“客户端”,而不是“缓存”吗?
- uiimageview - 快速将过滤器应用于图像交换高度和宽度
- php - 空字段上的 Seblod 搜索(精确匹配)
- tensorflow - 如何使用 Tensorflow API 仅将人检测为对象