日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python的写操作_Python—文件读写操作

發(fā)布時(shí)間:2024/3/12 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的写操作_Python—文件读写操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

初識(shí)文件操作

使用open()函數(shù)打開一個(gè)文件,獲取到文件句柄,然后通過文件句柄就可以進(jìn)行各種各樣的操作了,根據(jù)打開文件的方式不同能夠執(zhí)行的操作也會(huì)有相應(yīng)的差異。

打開文件的方式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默認(rèn)使用的是r(只讀)模式。

只讀操作(r, rb)、只寫模式(w, wb)、追加(a, ab)、讀寫模式(r+, r+b)、寫讀模式(w+, w+b)、追加讀(a+)。

當(dāng)我們寫文件時(shí),操作系統(tǒng)往往不會(huì)立刻把數(shù)據(jù)寫入磁盤,而是放到內(nèi)存緩存起來,空閑的時(shí)候再慢慢寫入。只有調(diào)用close()方法時(shí),操作系統(tǒng)才保證把沒有寫入的數(shù)據(jù)全部寫入磁盤。忘記調(diào)用close()的后果是數(shù)據(jù)可能只寫了一部分到磁盤,剩下的丟失了。

模式

描述

r

以只讀方式打開文件。文件的指針將會(huì)放在文件的開頭。這是默認(rèn)模式。

rb

以二進(jìn)制格式打開一個(gè)文件用于只讀。文件指針將會(huì)放在文件的開頭。這是默認(rèn)模式。

r+

打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件的開頭。

r+b

以二進(jìn)制格式打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件的開頭。

w

打開一個(gè)文件只用于寫入。若該文件已存在則將其覆蓋。若該文件不存在,創(chuàng)建新文件。

wb

以二進(jìn)制格式打開一個(gè)文件用于只寫。若該文件已存在則將其覆蓋。若該文件不存在,創(chuàng)建新文件。

w+

打開一個(gè)文件用于讀寫。若該文件已存在則將其覆蓋。若該文件不存在,創(chuàng)建新文件。

w+b

以二進(jìn)制格式打開一個(gè)文件用于讀寫。若該文件已存在則將其覆蓋。若該文件不存在,創(chuàng)建新文件。

a

打開一個(gè)文件用于追加。若該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。

ab

以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。

a+

打開一個(gè)文件用于讀寫。若該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。文件打開時(shí)會(huì)是追加模式。

a+b

以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。

文件內(nèi)容:poem.txt

滄海月明珠有淚,

藍(lán)田日暖玉生煙。

此情可待成追憶,

只是當(dāng)時(shí)已惘然。

基本讀取文件

# 讀取文件,文件不存在會(huì)報(bào)錯(cuò)

file = open("poem.txt", "rt")

content1 = file.read() # 把整個(gè)文件當(dāng)做一個(gè)字符串返回,會(huì)加上每行末尾的換行符。打印輸出的時(shí)候,遇到\n會(huì)自動(dòng)換行。

print content1, type(content1) # 結(jié)果:滄海月明珠有淚,...只是當(dāng)時(shí)已惘然。 附加:輸出有換行格式的,這里不方便展示。

content2 = file.read(15) # 讀取n個(gè)字符。如果再次讀取,會(huì)在當(dāng)前位置繼續(xù)去讀而不是從頭讀。如果使用的是rb模式. 則讀取出來的是n個(gè)字節(jié)。

print content2, type(content2) # 結(jié)果:滄海月明珠

content3 = file.readline() # 一次讀取一行數(shù)據(jù),每次讀取出來的數(shù)據(jù)都會(huì)有一個(gè)\n,即換行符。可以使用strip()方法來去掉\n或者空格。

print content3, type(content3) # 結(jié)果:滄海月明珠有淚, 附加:輸出有換行格式的,這里不方便展示。

content4 = file.readlines() # 返回一個(gè)列表,每一行作為一個(gè)元素.每一個(gè)元素都包括"\n"。

print content4, type(content4) # 結(jié)果:["滄海月明珠有淚,\n", "藍(lán)田日暖玉生煙\n",...]。 附加:列表長(zhǎng)度為4

for line in content4:

print line.strip()

for line in file: # 循環(huán)讀取.每次讀取一行內(nèi)容.不會(huì)產(chǎn)生內(nèi)存溢出的問題.推薦使用.

print line.strip()

file.close()

基本寫入文件

# 寫入文件,文件不存在會(huì)創(chuàng)建新文件

file = open("poem.txt", "wt")

file.write("滄海月明珠有淚,\n藍(lán)田日暖玉生煙。") # 寫入兩行詩

file.write("此情可待成追憶,".decode("utf-8").encode("utf-8"))

file.writelines(["滄海月明珠有淚,\n", "藍(lán)田日暖玉生煙。"]) # 讀取列表,寫入兩行詩

file.flush() # 刷新. 把緩沖區(qū)的內(nèi)容寫入到磁盤上.

file.close()

file對(duì)象相關(guān)的所有屬性的列表

屬性

描述

file.closed

如果文件已被關(guān)閉返回true,否則返回false。

file.mode

返回被打開文件的訪問模式。

file.name

返回文件的名稱。

file.softspace

如果用print輸出后,必須跟一個(gè)空格符,則返回false。否則返回true。

高級(jí)文件讀寫

# with語句來自動(dòng)幫我們調(diào)用close()方法,推薦以后用這種方式讀寫文件。

with open("poem.txt", "rb") as fr:

fr.read()

with open("poem.txt", "wb") as fw:

fw.write('Hello, world!')

字符編碼

# 要寫入特定編碼的文本文件,需要給open()函數(shù)傳入encoding參數(shù),將字符串自動(dòng)轉(zhuǎn)換成指定編碼

with open("poem.txt", "wb", encoding='gbk') as fw:

fw.write('Hello, world!')

# 要讀取非UTF-8編碼的文本文件,需要給open()函數(shù)傳入encoding參數(shù),例如,讀取GBK編碼的文件:

with open("poem.txt", "rb", encoding='gbk') as fr:

fr.read()

# 在文本文件中可能夾雜了一些非法編碼的字符,可能會(huì)遇到UnicodeDecodeError。open()函數(shù)還接收一個(gè)errors參數(shù),表示如果遇到編碼錯(cuò)誤后如何處理。最簡(jiǎn)單的方式是直接忽略。

with open("poem.txt", "rb", encoding='gbk', errors='ignore') as fr:

fr.read()

多個(gè)文件的讀寫,可以寫成以下兩種方式

# 方式1:

with open('poem1.txt','r') as f1:

with open('poem2.txt','r') as f2:

with open('poem3.txt','r') as f3:

........

# 方式2

with open('poem1.txt','r') as f1:

........

with open('poem2.txt','r') as f2:

........

with open('poem3.txt','r') as f3:

總結(jié)

以上是生活随笔為你收集整理的python的写操作_Python—文件读写操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。