本文來自於千鋒教育在阿里雲開發者社區學習中心上線課程《Python入門2020最新大課》,主講人姜偉。
文件的讀寫
<1>寫數據(write)
使⽤write()
可以完成向⽂件寫⼊數據
demo:新建⼀個⽂件 file_write_test.py
,向其中寫⼊如下代碼:
f = open('test.txt', 'w')
f.write('hello world, i am here!\n' * 5)
f.close()
運⾏之後會在 file_write_test.py
⽂件所在的路徑中創建⼀個⽂件 test.txt
,並寫⼊內容,運⾏效果顯示如下:
注意:
如果⽂件不存在,那麼創建;如果存在那麼就先清空,然後寫⼊數據
<2>讀數據(read)
使⽤read(num)可以從⽂件中讀取數據,num表示要從⽂件中讀取的數據的⻓度(單位是字節),如果沒有傳⼊num,那麼就表示讀取⽂件中所有的數據
demo:新建⼀個⽂件 file_read_test.py
,向其中寫⼊如下代碼:
f = open('test.txt', 'r')
content = f.read(5) # 最多讀取5個數據
print(content)
print("-"*30) # 分割線,⽤來測試
content = f.read() # 從上次讀取的位置繼續讀取剩下的所有的數據
print(content)
f.close() # 關閉⽂件
運⾏現象:
hello
------------------------------
world, i am here!
注意:
如果⽤open打開⽂件時,如果使⽤的"r",那麼可以省略open('test.txt')
<3>讀數據(readlines)
readline可以按照⾏的⽅式把整個⽂件中的內容進⾏⼀次性讀取,並且返回的是⼀個列表,其中每⼀⾏為列表的⼀個元素。
f = open('test.txt', 'r')
content = f.readlines()
print(type(content))
for temp in content:
print(temp)
f.close()
readline()
讀取一行數據
指針定位
tell()
⽅法⽤來顯示當前指針的位置
f = open('test.txt')
print(f.read(10)) # read 指定讀取的字節數
print(f.tell()) # tell()⽅法顯示當前⽂件指針所在的⽂字
f.close()
seek(offset,whence)
⽅法⽤來重新設定指針的位置。
- offset:表示偏移量
- whence:只能傳⼊012中的⼀個數字。
- 0表示從⽂件頭開始
- 1表示從當前位置開始
- 2 表示從⽂件的末尾開始
f = open('test.txt','rb') # 需要指定打開模式為rb,只讀⼆進制模式
print(f.read(3))
print(f.tell())
f.seek(2,0) # 從⽂件的開頭開始,跳過兩個字節
print(f.read())
f.seek(1,1) # 從當前位置開始,跳過⼀個字節
print(f.read())
f.seek(-4,2) # 從⽂件末尾開始,往前跳過四個字節
print(f.read())
f.close()