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()