在工作中遇到一個需求,需要用Python腳本讀取一個13G的文件,把每行的記錄寫入redis。由于機器的內存只有8G,所以不能一次將磁盤上的文件全部讀入內存,需要一行一行讀取文件。
Python按行讀取文件主要是使用file.readline方法或者利用file對象的迭代器性質,而file.readlines方法則是一次把所有內容從磁盤讀入內存。當內存足夠時,file.readlines方法顯然會更快,因為磁盤I/O次數更少。
下面給出了三種遍歷文件每行的方式:
if __name__ == '__main__':
# Method 1: 通過readlines方法一次把整個文件從磁盤讀入內存,在內存中遍歷各行
with open('test.txt', 'r') as file:
lines = file.readlines()
for line in lines:
print(line)
# Method 3:通過readline方法一次將文件的一行讀入內存
with open('test.txt', 'r') as file:
while True:
line = file.readline()
if line:
print(line)
else:
break
# Method 2: 通過迭代器訪問文件對象,每次將文件的一行從磁盤讀入內存
file = open('test.txt', 'r')
for line in file:
print(line)
file.close()
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
