分別用這三個函數(shù)讀取 myfile.txt 缘滥。 myfile.txt 中的內(nèi)容是拜倫的《她以絕美之姿行來》(節(jié)選):
她以絕美之姿行來轰胁,猶如夜晚
晴空無云,繁星燦爛朝扼;
那最絕妙的光明與黑暗赃阀,
均匯聚于她的豐姿與眼底,
交織成如許溫柔光輝擎颖,
是濃艷的白晝所無緣得見榛斯。
read()
with open('myfile.txt','r') as f:
? ? poem = f.read()
? ? ?print(poem,'\n',type(poem))
打印結果:
她以絕美之姿行來,猶如夜晚 晴空無云搂捧,繁星燦爛驮俗; 那最絕妙的光明與黑暗, 均匯聚于她的豐姿與眼底允跑, 交織成如許溫柔光輝王凑, 是濃艷的白晝所無緣得見。
<class 'str'>
read() 函數(shù)不指定參數(shù)的話聋丝,會將文件一次性讀完索烹,并返回一個 str ?;
如果指定參數(shù)如 read(5) 則只會讀取前 5 個字符,并返回一個 str弱睦,在讀取大文件時一般都要指定參數(shù)進行分次讀取百姓。
readline()
with open('myfile.txt','r') as f:
? ? ?poem = f.readline()
? ? ?print(poem,'\n',type(poem))
打印結果:
她以絕美之姿行來,猶如夜晚
<class 'str'>
用法:readline()不指定參數(shù)的話一次讀取一行(即遇到換行符就停止讀瓤瞿尽)垒拢,返回一個 str 。
指定參數(shù)如 readline(5) 的話就讀取前5個字符火惊。但與 read(5) 不同的是子库,如果前 5 個字符中有換行符,它只會讀取換行符前的字符(也就是只讀取一行)矗晃。
readlines()
with open('myfile.txt','r') as f:
? ? ?poem = f.readlines()
? ? ?print(poem,'\n',type(poem))
打印結果:
['她以絕美之姿行來仑嗅,猶如夜晚 \n', '晴空無云,繁星燦爛; \n', '那最絕妙的光明與黑暗, \n', '均匯聚于她的豐姿與眼底, \n', '交織成如許溫柔光輝宣蠕, \n', '是濃艷的白晝所無緣得見。']
<class 'list'>
用法:readlines()不指定參數(shù)的話會一次地將文件讀完阔逼,并返回一個列表。列表的第一個元素是文件的第一行地沮,第二個元素是第二行……
?readlines()若指定參數(shù)如 readlines(5) ,并不是讀取 5 行.....如下所示
readlines(5)
打印結果:
['她以絕美之姿行來嗜浮,猶如夜晚 \n']
這里的 5 是字符數(shù)量。當讀取的字符數(shù)量大于 5 時就停止讀取摩疑,否則繼續(xù)讀取下一行危融。這里第一行的字符數(shù)量超過了 5 個,就停止讀取了雷袋。
總結:
在讀取大文件時吉殃,使用 read(size) 逐次讀取 。
在讀取存儲 url 的文件時楷怒,使用 readlines() 剛好可以生成一個列表蛋勺,方便處理。