俗話說的好:技能學了~就要用在自己喜歡得東西上!! 這我不得聽個話~我喜歡小姐姐,跳舞的小姐姐 這不得用python把小姐姐爬下來~嘿嘿嘿 採集網站 本期目標來自虎牙舞蹈區 開發環境 Python 3.8 Pycharm 模塊 requests re 基本流程 數據來源分析 確定採集內容是什麼? ( ...
對文件操作的基本步驟
f=open('a.txt','r',encoding='utf-8')
data=f.read()
print(data)
f.close()
文件的打開和關閉使用open()、close()函數,文件剛打開時游標在最前面。
open()函數的第一個參數為要打開的文件名,預設路徑為這個腳本所在路徑;第二個參數為打開模式,第三個參數為編碼格式。
文件的基本打開模式有r、w、a、r+、w+、a+,如果省略打開模式預設為r只讀,各打開模式的區別如下:
f.readable() 判斷文件是否可讀,返回True或False
f.readline() 每次讀取一行,當讀取到一行的末尾時再執行readline讀取內容為空
f.readlines() 將文件所有內容讀出放到一個列表,每行為一個元素,類型為字元串,例如['hello\n', 'hi\n', 'nice\n']
如果在文件打開時,指定newline=‘’,則換行的結果顯示為/r/n(windows平臺的換行符為\r\n,unix和linux平臺的換行符為\n)
f1=open('b.txt','r',encoding='utf-8')
f2=open('b.txt','r',encoding='utf-8',newline='')
print(f1.readlines())
print(f2.readlines())
f1.close()
f2.close()
#執行結果為
['123\n', 'abc']
['123\r\n', 'abc']
f.writable() 判斷文件是否可寫,返回True或False
f.write() 將所有內容作為一個整體寫入文件
f.writelines() 將列表內容按行寫入文件,f.writelines(['hello\n', 'hi\n', 'nice\n'])
f.closed 判斷文件是否關閉,返回True或False,註意該方法沒有括弧
f.encoding 返迴文件打開時候的編碼,註意該方法沒有括弧
f.flush() 將內容中的內容刷到硬碟
直接使用open函數打開文件時,還需要手動關閉close文件,否則文件會一直占據記憶體。使用with open() as f打開文件則無需手動關閉,使用例子如下。
def file_operation():
with open('a.txt','a+',encoding='utf-8') as f:
f.write('hello')
print(f.read())
文件預設是以t即文本模式進行處理,
b為二進位模式,可以處理除了文本之外的圖片、音頻、視頻等格式的文件,還可以跨平臺處理
f=open('test11.py','rb')------以b的方式打開文件時不能指定編碼
data=f.read()
print(data.decode('utf-8'))------讀取之後以utf-8格式對二進位進行解碼
f=open('test22.py','wb')
f.write(bytes('1111\n',encoding='utf-8'))--------bytes函數將指定內容以uft-8格式編碼為二進位
#學習中遇到問題沒人解答?小編創建了一個Python學習交流群:725638078
f.write('22222\n'.encode('utf-8'))----------encode直接將指定內容以uft-8格式編碼為二進位
文件內游標的移動
除去read( )是以字元進行讀取的,其他游標的移動都是以位元組為單位進行的,如seek、tell、truncate
read(3)表示讀取3個字元
seek(3)表示游標向後移動3個位元組,預設是從游標在文件最前面開始,也即seek(3,0)
游標的相對移動需要在打開時指定b模式,seek的第二個參數表示移動方式,0為預設方式,即從文件最開頭移動,1是相對上一次移動,2是從文件末尾移動
seek(3,1) 表示從游標上一次所在的位置向後移動3個位元組
seek(-3,2)表示從文件末尾開始向前移動
truncate(3)表示截取文件前3個位元組,必須以可寫的方式打開,w和w+除外
tell( )表示顯示當前游標所在的位元組