1三個,0代表buffer關(guān)閉(只適用于二進(jìn)制模式),1代表linebuffer(只適用于文本模式),>1表示初始化的buff" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python open()文件處理使用介紹

系統(tǒng) 2145 0

1. open()語法

open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=True]]]]]])
open函數(shù)有很多的參數(shù),常用的是file,mode和encoding
file 文件位置,需要加引號
mode 文件打開模式,見下面3
buffering 的可取值有0,1,>1三個,0代表buffer關(guān)閉(只適用于二進(jìn)制模式),1代表line buffer(只適用于文本模式),>1表示初始化的buffer大小;
encoding 表示的是返回的數(shù)據(jù)采用何種編碼,一般采用utf8或者gbk;
errors 的取值一般有strict,ignore,當(dāng)取strict的時候,字符編碼出現(xiàn)問題的時候,會報錯,當(dāng)取ignore的時候,編碼出現(xiàn)問題,程序會忽略而過,繼續(xù)執(zhí)行下面的程序。
newline 可以取的值有None, \n, \r, ”, ‘\r\n',用于區(qū)分換行符,但是這個參數(shù)只對文本模式有效;
closefd 的取值,是與傳入的文件參數(shù)有關(guān),默認(rèn)情況下為True,傳入的file參數(shù)為文件的文件名,取值為False的時候,file只能是文件描述符,什么是文件描述符,就是一個非負(fù)整數(shù),在Unix內(nèi)核的系統(tǒng)中,打開一個文件,便會返回一個文件描述符。

2. Python 中file()與open()區(qū)別
兩者都能夠打開文件,對文件進(jìn)行操作,也具有相似的用法和參數(shù),但是,這兩種文件打開方式有本質(zhì)的區(qū)別, file為文件類 ,用file()來打開文件 ,相當(dāng)于這是在構(gòu)造文件類,而用open()打開文件,是用 python的內(nèi)建函數(shù)來操作 ,建議使用open

3. 參數(shù)mode的基本取值

Character Meaning
‘r' open for reading (default)
‘w' open for writing, truncating the file first
‘a(chǎn)' open for writing, appending to the end of the file if it exists
‘b' binary mode
‘t' text mode (default)
‘+' open a disk file for updating (reading and writing)
‘U' universal newline mode (for backwards compatibility; should not be used in new code)

r、w、a為打開文件的基本模式,對應(yīng)著只讀、只寫、追加模式;
b、t、+、U這四個字符,與以上的文件打開模式組合使用,二進(jìn)制模式,文本模式,讀寫模式、通用換行符,根據(jù)實際情況組合使用、

常見的mode取值組合

          
r或rt 默認(rèn)模式,文本模式讀
rb   二進(jìn)制文件
 
w或wt 文本模式寫,打開前文件存儲被清空
wb  二進(jìn)制寫,文件存儲同樣被清空
 
a  追加模式,只能寫在文件末尾
a+ 可讀寫模式,寫只能寫在文件末尾
 
w+ 可讀寫,與a+的區(qū)別是要清空文件內(nèi)容
r+ 可讀寫,與a+的區(qū)別是可以寫到文件任何位置
        

4. 測試
測試文件test.txt,內(nèi)容如下:

          
Hello,Python
www.jb51.net
This is a test file
        

用一小段代碼來測試寫入文件直觀的顯示它們的不同

          
test = [ "test1\n", "test2\n", "test3\n" ]
f = open("test.txt", "a+")
try:
 #f.seek(0)
 for l in test:
  f.write(l)
finally:
 f.close()
        

a+、w+和r+模式的區(qū)別 (測試后還原test.txt)
a+模式

          
# cat test.txt
Hello, Python
www.jb51.net
This is a test file
test1
test2
test3

        

w+模式

          
# cat test.txt
test1
test2
test3
        

r+模式
在寫入文件前,我們在上面那段代碼中加上一句f.seek(0),用來定位寫入文件寫入位置(文件開頭),直接覆蓋字符數(shù)(注意\n也是一個字符)

          
# cat test.txt
test1
test2
test3
inuxeye.com
This is a test file
        

注意:r+模式打開文件時,此文件必須存在,否則就會報錯,‘r'模式也如此
其他測試

          
>>> f = open('test.txt')
>>> f.read() #讀取整個文件,字符串顯示
'Hello,Python\nwww.jb51.net\nThis is a test file\n'
>>> f.read() #指針在文件末尾,不能再讀取內(nèi)容
''
        
          
>>> f = open('test.txt')
>>> f.readline() #一次讀一行,指針在該行末尾
'Hello,Python\n'
>>> f.tell() #改行的字符長度
13
>>> f.readline()
'www.jb51.net\n'
>>> f.tell()
30
>>> f.readline()
'This is a test file\n'
>>> f.tell()
50
>>> f.readline()
''
>>> f.tell() #指針停在最后一行
50
        
          
>>> f = open('test.txt')
>>> f.readlines() #讀取整個文件,以列表顯示
['Hello,Python\n', 'www.jb51.net\n', 'This is a test file\n']
>>> f.tell() #指針在最后一行
50
        
          
>>> f = open('test.txt','w') #覆蓋創(chuàng)建新文件
>>> f.write('Hello,Python!') #如果寫入內(nèi)容小于1024,會存在內(nèi)存,否則需要刷新
>>> f.flush() #寫入到硬盤
>>> f.close() #關(guān)閉文件會自動刷新
>>> f.write('Hello,Linuxeye') #關(guān)閉后,寫失敗,提示文件已經(jīng)關(guān)閉
Traceback (most recent call last):
 File "
          
            ", line 1, in 
            
              
ValueError: I/O operation on closed file 
            
          
        

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产一区二区三区国产精品 | 精品国产一级毛片 | 在线精品自拍亚洲第一区 | 韩漫重考生漫画画免费读漫画下拉式土豪漫 | 91看片淫黄大片欧美看国产片 | 欧美一级夜夜爽www 美女污视频网站 | 亚洲视频国产一区 | 日韩高清免费在线观看 | 久久一本久综合久久爱 | 久久国产精品免费一区二区三区 | 久久一区精品 | 1级a的观看视频 | 欧美日韩一区在线 | 国产黄视频在线观看 | 国产美女在线免费观看 | 国产精品极品美女在线观看免费 | 99SE久久爱五月天婷婷 | 久久九九99热这里只有精品 | 国产精品视频播放 | 久久国产成人 | 香港论理午夜电影网 | 欧美a视频在线观看 | 欧美性一区二区三区 | 亚洲精品久久久一二三区 | 狠狠操电影| 亚洲一区在线日韩在线深爱 | 国产99久久精品一区二区永久免费 | 国产一级毛片高清 | 国产精品一区二区三 | 免费观看视频91 | 久久久久国产精品人 | 精品久久久久一区二区国产 | 国产精品成人一区二区 | 视频一区二区三区四区五区 | 小视频你懂得 | 三级视频网址 | 精品中文字幕一区二区 | 欧美乱xxxxx强 | 色艹| a级毛片免费高清视频 | 欧美一级毛片不卡免费观看 |