1. 程式人生 > >6.2Python文件的操作(二)

6.2Python文件的操作(二)

imageview 技術分享 文章 nco 資源 -o lose write 編碼

目錄

  • 目錄
  • 前言
  • (一)文件的定位
  • (二)文件的讀操作
    • ==1.read()方法==
    • ==2.readline()方法==
    • ==3.readlines()方法==
    • ==4.文件的遍歷讀法==
  • (三)文件的寫操作
    • ==1.write()方法==
    • ==2.writelines()方法==
  • (四)文件的關閉

目錄

前言

該篇是相繼上一篇6.1Python文件操作(一)之後的進階文章。

(一)文件的定位

(1)說明

f.tell() 返回當前文件指針所在的位置。

f.seek(偏移量, 參考點) 根據參考點來偏移 偏移量個單位。

參考的:可以是0, 1, 2

0: 開頭處, 參考點是正的

1:中間位置,參考點可正可負

2:結尾處:參考點是負的

註:文本文件的參考點只能是0,二進制文件三者皆可。

(2)源代碼

# 打開
f = open("a.txt", "rb")

# 指針的位置
r1 = f.tell()
print("前指針的位置:", r1)

# 偏移指針,參考點: 文本文件只能是0,二進制文件可以是:1, 2
f.seek(-2, 2)

r1 = f.tell()
print("後指針的位置:", r1)
# 讀
content = f.read()
print("內容是:", content)

r1 = f.tell()
print("讀完指針的位置:", r1)
# 關閉
f.close()

(3)輸出效果

a.txt的內容是:12345678

技術分享圖片

(二)文件的讀操作

==1.read()方法==

(1)說明

f.readable()用於判斷該文件是否可讀

f.read(字節數) ,默認情況下字節 數是文件的長度。

(2)源代碼

# 打開文件
f = open("b.txt", "r")

# 判斷是否可讀
print(f.readable())
if f.readable():
    # 操作, n 要讀的文件長度
    content = f.read(5)
    print(content)

# 關閉文件
f.close()

(3)輸出效果

b.txt 的內容是:123456789

技術分享圖片

==2.readline()方法==

(1)說明

readline()方法是逐行的讀寫,每一次只讀一行。

(2)源代碼

# 打開文件
f = open("c.txt", "r")

# 操作, n 要讀的文件長度
content = f.readline()
print(content, end='')
content = f.readline()
print(content, end='')
content = f.readline()
print(content, end='')
# 關閉文件
f.close()

(3)輸出效果

c.txt的內容是:
12
34abcdefgh
56
78

技術分享圖片

==3.readlines()方法==

(1)說明

readlines()方法是以行為單位來讀,返回每一行為一個元素的列表 。

(2)源代碼

# 打開文件
f = open("c.txt", "r")

# 操作, n 要讀的文件長度
content = f.readlines()
print(content)
# 關閉文件
f.close()

(3)輸出效果

c.txt的內容是:
12
34abcdefgh
56
78

技術分享圖片

==4.文件的遍歷讀法==

(1)說明

打開的文件 f 本身就是一個叠代器,可以用for循環來遍歷輸出。與resdlines()類似,用行為單位來處理。

(2)源代碼

# 打開文件
f = open("c.txt", "r")

# f是一個叠代器與readlines()效果一樣
for i in f:
    print(i, end='')


# 關閉文件
f.close()

(3)輸出效果

c.txt的內容是:
12
34abcdefgh
56
78

技術分享圖片

(三)文件的寫操作

==1.write()方法==

(1)說明

f.writable()用於判斷該文件是否可選。

f.write()方法返回的是本次寫入的字節數。

encoding="utf-8" 參數是指明寫入的編碼格式。

(2)源代碼

# 打開文件
f = open("d.txt", "a", encoding="utf-8")

# 判斷是否可寫
if f.writable():
    # 寫入文件
    result = f.write("123456")
    print("寫入的字節數是:", result)
# 關閉文件
f.close()

(3)輸出效果

技術分享圖片

==2.writelines()方法==

(1)說明

f. writelines()方法是以列表的每一個元素,寫入到文件的每一行,列表的元素必須是字符串類型。

註:每一個列表的元素後面需要添加 "\n" 才換行,默認是不換行。

(2)源代碼

# 打開文件
f = open("e.txt", "w", encoding="utf-8")

# 寫入文件
f_list = ["14\n", "28\n", "abc\n", "哈哈"]
f.writelines(f_list)
# 關閉文件
f.close()

(3)輸出效果

技術分享圖片

(四)文件的關閉

(1)說明

f.close()是關閉文件,內部是把緩存區的數據,寫到內存,才實現真正的保存操作。

同時也釋放系統資源。

f.flush() 是立即把緩存區的數據寫入到內存裏區,實現及時的保存。

(2)源代碼

# 打開文件
f = open("f.txt", "w")

# 操作文件
f.write("123456")

# 及時保存數據
f.flush()

# 關閉文件
f.close()

(3)輸出效果

技術分享圖片

作者:Mark

日期:2019/02/08 周五

6.2Python文件的操作(二)