開發與維運

文件的讀寫

本文來自於千鋒教育在阿里雲開發者社區學習中心上線課程《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 ,並寫⼊內容,運⾏效果顯示如下:
image.png
注意:
如果⽂件不存在,那麼創建;如果存在那麼就先清空,然後寫⼊數據

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

配套視頻

Leave a Reply

Your email address will not be published. Required fields are marked *