1. 程式人生 > >Python基礎 (下)

Python基礎 (下)

src txt style open spa 可選 alt file 打開文件

一、讀寫文件

1. 打開文件: open(filename, mode)。 mode有如下幾種模式,默認為只讀(r)。

技術分享圖片 技術分享圖片

2. 寫入文件

f = open("/home/test.txt", "w")

# f.write(s) 將s寫入到文件中, 然後返回寫入的字符數。
num = f.write("Come on baby!\n Let‘s go party")
print(num)

# 如果要寫入非字符串的數據, 需要先轉換為字符串:
value = (amy, 14, China)
s = str(value)
f.write(s)

f.close()

3. 讀取文件

f = open("/home/test.txt", "r")

str = f.read()       # f.read(size) 讀取一定數目的數據, 當size被忽略或者為負, 將讀取該文件的所有內容。
str = f.readline()   # f.readline() 讀取一行,換行符為‘\n‘。 當返回一個空字符串, 說明已經讀取到最後一行。
str = f.readlines()  # f.readlines()讀取所有行,如果設置可選參數sizehint, 則讀取指定長度的字節, 並且將這些字節按行分割。
print(str)

# 叠代文件對象然後讀取每行
for line in
f: print(line, end=‘‘) f.close()

4. 移動文件位置

f.tell() 返回文件對象當前所處的位置, 它是從文件開頭開始算起的字節數。

f.seek() 改變文件當前的位置, 語法: f.seek(offset, from_what) from_what為0表示從文件開頭移動, 1表示當前位置, 2表示文件的結尾,默認為0
  seek(x,0) : 從起始位置即文件首行首字符開始移動x個字符
  seek(x,1) : 表示從當前位置往後移動x個字符
  seek(-x,2):表示從文件的結尾往前移動x個字符

f = open(/home/test.txt
, rb+) f.write(b0123456789abcdef) f.seek(5) # 移動到文件的第六個字節 f.read(1) # b‘5‘ f.seek(-3, 2) # 移動到文件的倒數第三字節 f.read(1) # b‘d‘ f.close()

5. pickle模塊 - 對象序列化

a.將數據對象保存到文件

import pickle

data1 = {a: [1, 2.0, 3, 4+6j],
         b: (string, uUnicode string),
         c: None}

list1 = [1, 2, 3]
list1.append(list1)

f = open(data.pkl, wb)
pickle.dump(data1, f)     # 使用 protocol 0
pickle.dump(list1, f, -1) # 使用最高的協議
f.close()

b.從文件中重構python對象

Python基礎 (下)