Python之路day08 檔案讀寫操作 函式初識

2022-09-13 22:24:22 字數 3122 閱讀 7112

今天挑戰一下,將day08和day09的搞定。今天主要學習了檔案的操作讀寫、

來來總結一波:

學習了檔案的讀:r、rb、r+、r+b

寫:w、wb、w+、w+b

檔案控制代碼,seek游標,flush強制重新整理檔案內容,tell:告訴當前控制代碼所在的位置(int)

day09:函式的定義

傳參:實參、形參

python 中的檔案操作很重要,雖然不難,但是坑不少,比如:檔案的編碼方式。如果你搞懂 python 的編碼方式了,這都不是問題,具體可看我之前寫的文章:python檔案編碼問題。還有就是應用場景很多,比如機器學習中資料的讀取和寫入、web 爬蟲的資料訪問等。

open(file, mode='w', buffering=-1, encoding=none, errors=none, newline=none, closefd=true, opener=none)
引數說明:

buffering: 設定緩衝

encoding: 若不設定則預設和作業系統的預設編碼方式一樣。比如:mac os上是 utf-8,windows上是 gbk,不過 win10 上改成 utf-8 了,linux 上是 utf-8。按照解碼和編碼方式一樣的原則,有utf-8、gbk等。

errors: 報錯級別

newline: 區分換行符

closefd: 傳入的file引數型別

opener: 設定自定義開啟器,開啟器的返回值必須是乙個開啟的檔案描述符。

寫入的 mode 有:w以 unicode 的方式寫入檔案內容,wb寫入二進位制的檔案內容,w+可以讀取也可以寫入,加號相當於是新增了乙個功能,wb+可讀可寫二進位制檔案。

# 1、麻煩的一種方式,

file_name = "write_test.txt"

f = open('write_test.txt', mode='w', encoding="utf8") # 定義操作檔案的控制代碼f,

f.write("這是乙個") # 寫入內容

f.close() # 關閉檔案控制代碼

# 2、推薦方式 使用with,結束後自動關閉控制代碼

with open("write_test.txt", mode='w', encoding="utf8") as f, open("test2.txt", 'w', encoding="utf8") as f2:

f.write("我是主流with讀取檔案的方式。")

f2.write("with 可以並列操作幾個檔案哈")

寫入的 mode 有:r以 unicode 的方式讀取檔案內容,rb讀取二進位制的檔案內容,r+可以讀取也可以寫入,加號相當於是新增了乙個功能,rb+可讀可寫 二進位制檔案。

讀取檔案的方式需重點掌握,

"""

write_test.txt 檔案的內容:

我是主流with讀取檔案的方式。

hi 第二行

"""

使用f.read()方法讀取檔案不是很推薦,因為他會一次性將檔案所有資料讀取到記憶體中,將如果檔案帶

# 1、read方法

with open("write_test.txt", mode='r', encoding="utf8") as f:

content = f.read()

print(content)

# 1.2、讀取前n個字元

print(f.tell()) # 53 tell 當前游標的位置

f.seek(0) # seek 將游標移動到0的位置 單位是位元組byte

print(f.read(4)) # 我是主流 read(n) 讀取前n個字元

f.readline()讀取當前游標所在行的游標之後的內容。

"""

write_test.txt 內容:

我愛學習python

"""# 2、readline

with open("write_test.txt", mode='r', encoding="utf8") as f:

f.seek(10)

content = f.readline()

print(content) # 習python

來來解釋一下,首先我使用 seek(7) 將游標移動到第七個位元組上(「學習」占用6個位元組+緊接著是換行符占用乙個自位元組+第二行的」學「佔3個位元組),就到了第二行的」學「之後,然後使用 readline() 就讀到了」習python「。

f.readlines()返回檔案中所有行內容的列表,以換行符作為分隔。

# 3、readlines

with open("write_test.txt", mode='r', encoding="utf8") as f:

content = f.readlines()

print(content, type(content))

# ['我是主流with讀取檔案的方式。\n', 'hi 第二行']

但是我 python 怎麼可能不解決此問題,請出我們今天的讀取檔案的主角方式迭代讀取檔案內容

推薦,

"""

write_test.txt 內容:

我愛學習python

"""# 2、readline

with open("write_test.txt", encoding="utf8") as f:

for each in f:

print(each)

# 列印:

"""我愛

學習python

"""

檔案操作很重要,但是少不了檔案編碼的問題,所以要搞懂編碼問題。否則後面再有編碼的問題,在學習就有點浪費時間了。

day 08 檔案管理

2 access 1 建議鎖 檔案鎖的由來 當兩個程序在同一時刻向同乙個檔案中寫入資料時,可能造成資料的交錯和不一致問題 當乙個程序在向檔案中寫入資料的同時,另外乙個程序讀取檔案中資料時可能造成資料的不一致性問題 當兩個程序同時讀取同乙個檔案資料時,可以同時進行 沒有讀寫操作讀取操作寫入操作 讀取o...

day08 檔案操作

1 三種字串 1 u 普通字串 u abc 預設的文字方式,以字元作為文字的輸出方式 2 b 二進位制字串 b ascii碼 以二進位制 位元組 作為文字輸出方式,且文字內容必須為ascii碼 3 r 原義字串 r n t 將引號中的轉移字串以原本的意義表示出來 多用於檔案路徑的表示 2 檔案操作步...

day08 檔案操作

open 開啟 f 檔案控制代碼 open 檔案的路徑 檔案放的位置 mode 操作檔案的模式 encoding 檔案的編碼 內建函式 f open 蘿莉小姐姐 號 mode r encoding utf 8 print f.read f.close with open 自動關閉檔案 with op...