/python通過(guò)解釋器內(nèi)置的open()函數(shù)打開(kāi)一個(gè)文件,并實(shí)現(xiàn)該文件與一個(gè)程序變量的關(guān)聯(lián),open()函數(shù)格式如下:
創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營(yíng)銷、網(wǎng)站重做改版、溪湖網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為溪湖等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
/open()函數(shù)包含有兩個(gè)參數(shù):文件名和打開(kāi)模式.當(dāng)文件與執(zhí)行文件在同一文件夾中,直接輸入文件名,亦可輸入文件的完整路徑.打開(kāi)模式是指以何種方式打開(kāi)文件,python提供了7種打開(kāi)模式.
/r/w/x/a模式與b/t/+模式可以組合使用,比如'rt'為文本只讀.'rb'為二級(jí)制只讀.
/文件使用結(jié)束后,需要使用close()關(guān)閉文件使用權(quán)限,釋放內(nèi)存.
/當(dāng)文件使用文本格式打開(kāi)時(shí),讀寫(xiě)按照字符串方式,采用計(jì)算機(jī)當(dāng)前編碼或指定編碼.
/當(dāng)文件以二進(jìn)制方式打開(kāi)時(shí),讀寫(xiě)按照字節(jié)流方式.
/python本身將文件讀取為一個(gè)行序列.
1 文件讀取全文本操作
在一定場(chǎng)景下我們需要把文本全部?jī)?nèi)容讀取出來(lái),進(jìn)行處理。python提供三種函數(shù)讀取文件,分別是read readline readlines,
read():讀取文件的全部?jī)?nèi)容,加上參數(shù)可以指定讀取的字符。
readline():讀取文件的一行。
readlines():讀取文件的所有行到內(nèi)存中。
不同場(chǎng)景下我們可以選擇不同函數(shù)對(duì)文件進(jìn)行讀取。
1.1 方法一
file_name = input("請(qǐng)輸入你要打開(kāi)的文件的完整路徑及名稱")
file= open(file_name, "r")
txt=file.read()
# 全文本的處理
file.close()
使用read函數(shù)將文件中的內(nèi)容全部讀取,放在字符串變量txt中。這樣操作適合于文本較小,處理簡(jiǎn)單的情況,當(dāng)文件較大時(shí),這種方式處理時(shí)不合適的。一次性讀取較大的文件到內(nèi)存中,會(huì)耗費(fèi)較多的時(shí)間和資源。這時(shí)候分批處理效果更好。
1.2 方法二
file_name = input("請(qǐng)輸入你要打開(kāi)的文件的完整路徑及名稱")
file= open(file_name, "r")
txt= file.read(4)
# 文本的處理while txt != ""txt= file.read(4)
# 批量文本處理
file.close()
這種方法適合于分批處理文本信息,每次批量讀入,批量處理,不會(huì)對(duì)內(nèi)存造成較大的壓力。
1.3 方法三
file_name = input("請(qǐng)輸入你要打開(kāi)的文件的完整路徑及名稱")
file= open(file_name, "r")for line infile.readlines():
# 處理每一行數(shù)據(jù)
file.close()
這種處理方式適合處理以行為分割特點(diǎn)的文本,并且文本較小,因?yàn)檫@種處理方式需要一次性把文件所有內(nèi)容讀取到內(nèi)存中。
1.4 方法四
file_name = input("請(qǐng)輸入你要打開(kāi)的文件的完整路徑及名稱")
file= open(file_name, "r") # 這里的file時(shí)文件句柄for line infile:
# 處理每一行數(shù)據(jù)
file.close()
這種方式和方法三中的區(qū)別是分行讀入,逐行處理,不會(huì)一次性把文件所有內(nèi)容都讀入到內(nèi)存中,對(duì)一些大文件的處理是很有效的。
2 文件寫(xiě)入文本操作
文件寫(xiě)入有兩種寫(xiě)入函數(shù)和一種輔助支持。
write():向文件中寫(xiě)入一個(gè)字符或者字節(jié)流
writelines():將一個(gè)元素全為字符串的列表寫(xiě)入到文件中 需要注意的是,writelines寫(xiě)入列表元素的時(shí)候會(huì)把列表元素的內(nèi)容拼接到一起寫(xiě)入,不會(huì)有換行和空格 。
seek(): 輔助寫(xiě)入函數(shù)offset偏移量參數(shù)代表含義如下
0 - 文件開(kāi)頭
1 - 當(dāng)前位置
2 - 文件結(jié)尾
2.1 方法一
file_name = input("output.txt", "w+")
text= "hello world!"file_name.write(text)
file.close()
2.2 方法二
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.writelines(list)for line infile:
# 讀取寫(xiě)入的數(shù)據(jù),這時(shí)候發(fā)現(xiàn)是沒(méi)有任何內(nèi)容的
file.close()
我們?cè)黾右恍写a就可以讀取到寫(xiě)入的文件內(nèi)容,利用seek()函數(shù)調(diào)整寫(xiě)操作指針的位置,可以實(shí)現(xiàn)寫(xiě)操作之后的正常讀取。
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.readlines(list)
file_name.seek(0) # 調(diào)整寫(xiě)的指針到文件的開(kāi)始位置for line infile:
# 讀取寫(xiě)入的數(shù)據(jù),這時(shí)候會(huì)讀出一行寫(xiě)入的數(shù)據(jù)。
file.close()
python中調(diào)用寫(xiě)文件函數(shù)的方法:
使用“open(‘文件路徑’, ‘w’)”語(yǔ)句就可以打開(kāi)文件了,然后用“write(內(nèi)容)”函數(shù)就可以將文件寫(xiě)入進(jìn)去了
示例代碼如下:
執(zhí)行結(jié)果如下:
更多Python知識(shí),請(qǐng)關(guān)注:Python自學(xué)網(wǎng)??!
writelines屬于python文件寫(xiě)入操作的一個(gè)函數(shù)
文本寫(xiě)入操作主要有兩個(gè)函數(shù),write(),writelines(),區(qū)別如下:
file.write(str)的參數(shù)是一個(gè)字符串,就是你要寫(xiě)入文件的內(nèi)容.
file.writelines(sequence)的參數(shù)是序列,比如列表,它會(huì)迭代幫你寫(xiě)入文件。
例
子:
#coding=utf-8
import os
import codecs
str_list = [
u'這里是第一行\(zhòng)n',
u'這里是第二行\(zhòng)n',
u'這里是第三行\(zhòng)n',
u'這里是第四行'
]
with codecs.open('test.txt','w+',encoding='utf-8') as f:
f.writelines(str_list)
只需要import你保存的東西就可以。
python具備動(dòng)態(tài)導(dǎo)入module并且執(zhí)行其中代碼的能力,所以你只要improt你保存的東西就可以,無(wú)需中斷你當(dāng)前的代碼執(zhí)行流。
使用open文件路徑W語(yǔ)句就可以打開(kāi)文件函數(shù)。
文章標(biāo)題:python文件寫(xiě)入函數(shù),python文件的寫(xiě)入
轉(zhuǎn)載來(lái)源:http://aaarwkj.com/article48/dsspjep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、標(biāo)簽優(yōu)化、企業(yè)建站、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)