python从一个大文件中随机获取一行数据

python从一个大文件中随机获取一行数据

背景:从一个很大的文件中,随机获取2000条数据组成一个新的文件,以下方法可解决该问题:

# 获取2000行数据
originFile = '/home/Users/a.txt'  # 原文件,从这里边随机获取一行
f_new = open('/home/Users/b.txt', 'w') # 新文件,随机获取的都写到这个里
for i in range(1, 2000):
    # 随机获取一行数据
    lineNumber = random.randint(1, 15140) # 随机数作为行数
    line = linecache.getline(self.originFile, lineNumber) # 随机读取一行
    if len(line) == 0: # 过滤为空的内容
        continue
    # 写入新的一个文件
    f_new.write(line)
	
# 不再读取时,需要清除缓存
linecache.clearcache()
# 关闭文件
f_new.close()
posted @ 2021-09-23 21:41  alisleepy  阅读(803)  评论(0编辑  收藏  举报