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