最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 文件和輸入輸出小結(jié)

 更新時(shí)間:2013年10月09日 21:46:41   投稿:mdxy-dxy  
Python 是面向?qū)ο缶幊陶Z(yǔ)言,文件也是一種類,下面簡(jiǎn)單介紹下,方便需要的朋友

1.打開和關(guān)閉文件(open(),file(),close())

有兩種內(nèi)建函數(shù)可以獲取文件對(duì)象:open和file。他們的用法完全一樣。下面只以open()為例子講解。獲取一個(gè)文件對(duì)象(打開文件)的語(yǔ)法如下:       

復(fù)制代碼 代碼如下:
fileObj = open(filename,access_mode='r',buffering=-1) 

filename不用說(shuō)你也應(yīng)該知道是你要打開文件的路徑。
access_mode用來(lái)標(biāo)識(shí)文件打開的模式,默認(rèn)為r(只讀)。

常用的模式如下表所示:

文件模式解釋
r以只讀方式打開
w以寫方式打開,文件不為空時(shí)清空文件;文件不存在時(shí)新建文件。
a追加模式,沒(méi)有則創(chuàng)建
r+,w+,a+以讀寫模式打開,參見w,a


另外還有一個(gè)b表示二進(jìn)制模式訪問(wèn),但是對(duì)于Linux或者unix系統(tǒng)來(lái)說(shuō)這個(gè)模式?jīng)]有任何意義,因?yàn)樗麄儼阉形募伎醋鞫M(jìn)制文件,包括文本文件。

第三個(gè)參數(shù)不經(jīng)常用到,標(biāo)識(shí)訪問(wèn)文件的緩沖方式,0代表不緩沖,1代表緩
沖一行,-1代表使用系統(tǒng)默認(rèn)緩沖方式。只要使用系統(tǒng)默認(rèn)就好。

一些例子:

復(fù)制代碼 代碼如下:

>>> f = open('/etc/passwd','r')
>>> f1 = open('/etc/test','w')

使用完文件后,一定要記得關(guān)閉文件,操作如下:

復(fù)制代碼 代碼如下:

>>> f.close()

2.文件讀入

2.1.file.read(size = -1)
    讀取從當(dāng)前文件游標(biāo)起size個(gè)字節(jié)的文件內(nèi)容。如果size=-1,則讀取所有剩余字節(jié)。

復(fù)制代碼 代碼如下:

>>> f = open('/etc/passwd')
>>> f.read(100)
'root:x:0:0:root:/root:/bin/bash\nbin:x:1:1:bin:/bin:/sbin/nologin\ndaemon:x:2:2:daemon:/sbin:/sbin/nol'

2.2.file.readlines(size=-1)

    從文件中讀取并返回一行(包括行結(jié)束符),或返回最大size個(gè)字符

復(fù)制代碼 代碼如下:

>>> f.readline()
'ogin\n'#和上面一個(gè)例子輸出的最后拼起來(lái)就是  'nologin',因?yàn)橛螛?biāo)在l后面。
>>> f.readline(1)
'a'

2.3.file.readlines(sizhint=0)
    讀取文件所有的行,并作為一個(gè)列表返回(包括行結(jié)束符),如果sizhint>0則返回總和大約sizhint字節(jié)的行(具體由緩沖區(qū)大小決定)。

復(fù)制代碼 代碼如下:

f.readlines()
['dm:x:3:4:adm:/var/adm:/sbin/nologin\n', 'lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\n', 'sync:x:5:0:sync:/sbin:/bin/sync\n', 'shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\n', 'halt:x:7:0:halt:/sbin:/sbin/halt\n', 'mail:x:8:12:mail:/var/spool/mail:/sbin/nologin\n', ......

輸出省略。

3.文件輸出

3.1.file.write(str)
    向文件中寫入指定的字符串。

復(fù)制代碼 代碼如下:

>>> f = file('/root/test.py','w+')
>>> f.write("print 'hello,world'")
>>> f.read()
''
>>> f.close()
>>> file('/root/test.py','r').read()
"print 'hello,world'"

3.2.file.write(seq)

    向文件寫入字符串序列seq。seq是任何返回字符串的可迭代對(duì)象。

復(fù)制代碼 代碼如下:

>>> f = file('/root/test.py','a+')
>>> codelst = ['\n','import os\n',"os.popen('ls').read()\n"]
>>> f.writelines(codelst)
>>> f.close()
>>> file('/root/test.py','r').read()
"print 'hello,world'\nimport os\nos.popen('ls').read()\n"

注意,文件寫入的時(shí)候,不會(huì)自動(dòng)加上換行符,必須手動(dòng)加上。

4.文件移動(dòng)

    學(xué)過(guò)C語(yǔ)言的同學(xué),一定對(duì)fseek()函數(shù)不陌生,在Python中,seek()方法是fseek()的替代者。

    seek(offset,whence=0)
    方法可以將文件游標(biāo)移動(dòng)到文件的任意位置。其中offset代表需要移動(dòng)的偏移字節(jié)數(shù),whence表示要從哪個(gè)位置開始偏移:
    0代表從文件開頭開始算起,
    1代表從當(dāng)前位置開始算起,
    2代表從文件末尾算起。

    那我們?nèi)绾沃喇?dāng)前文件游標(biāo)在哪里呢?別擔(dān)心,這里有個(gè)tell()方法可以返回當(dāng)前文件游標(biāo)的位置。

5.文件迭代

    在Python中,文件不僅僅是一個(gè)對(duì)象,而且是一個(gè)可迭代對(duì)象!我們可以利用如下迭代方式,輕松的訪問(wèn)和處理文件內(nèi)容,而不必全部讀出(readlines)后再迭代(性能上差了很多哦?。?/p>

復(fù)制代碼 代碼如下:

for eachline in f:
    #dealwith eachline of f

例如:

復(fù)制代碼 代碼如下:

>>> for eachline in f:
...     print eachline

6.os、os.path與文件

os和os.path中提供了一些跟文件有關(guān)的接口,下面介紹一些常用的接口。其他接口可以自己查閱相關(guān)文檔。

注意:以下函數(shù)傳入的參數(shù)都是字符串形式的文件名字,文件名可由文件對(duì)象的name屬性獲得。

函數(shù)描述
os.path.basename()去掉目錄路徑,返回文件名
os.path.dirname()去掉文件名,返回目錄路徑
os.path.getatime()
os.path.getctime()
os.path.getmtime()
os.path.size()
返回文件的atime,ctime,mtime和大小
os.path.exists()該文件或目錄是否存在
os.path.abs()指定路徑是否為絕對(duì)路徑
os.path.isdir()路徑是否存在且為目錄
os.path.isfile()路徑是否存在且為文件。
os.path.islink()指定路徑是否存在且為一個(gè)符號(hào)鏈接

復(fù)制代碼 代碼如下:

>>> import os.path
>>> f = open('/root/test.py','r')
>>> os.path.basename(f.name)
'test.py'
>>> f.name
'/root/test.py'
>>> os.path.getsize(f.name)
52
>>> os.path.isabs(f.name)
True
>>> os.path.isdir(f.name)
False

相關(guān)文章

  • Python繪制三角函數(shù)圖(sin\cos\tan)并標(biāo)注特定范圍的例子

    Python繪制三角函數(shù)圖(sin\cos\tan)并標(biāo)注特定范圍的例子

    今天小編就為大家分享一篇Python繪制三角函數(shù)圖(sin\cos\tan)并標(biāo)注特定范圍的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • Python實(shí)現(xiàn)的對(duì)本地host127.0.0.1主機(jī)進(jìn)行掃描端口功能示例

    Python實(shí)現(xiàn)的對(duì)本地host127.0.0.1主機(jī)進(jìn)行掃描端口功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的對(duì)本地host127.0.0.1主機(jī)進(jìn)行掃描端口功能,可實(shí)現(xiàn)掃描本機(jī)開放端口的功能,涉及Python socket模塊與Thread多線程模塊相關(guān)使用技巧,需要的朋友可以參考下
    2019-02-02
  • python將文本中的空格替換為換行的方法

    python將文本中的空格替換為換行的方法

    這篇文章主要介紹了python將文本中的空格替換為換行的方法,需要的朋友可以參考下
    2018-03-03
  • Python pandas求方差和標(biāo)準(zhǔn)差的方法實(shí)例

    Python pandas求方差和標(biāo)準(zhǔn)差的方法實(shí)例

    標(biāo)準(zhǔn)差(或方差),分為 總體標(biāo)準(zhǔn)差(方差)和 樣本標(biāo)準(zhǔn)差(方差),下面這篇文章主要給大家介紹了關(guān)于pandas求方差和標(biāo)準(zhǔn)差的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • python 遞歸遍歷文件夾,并打印滿足條件的文件路徑實(shí)例

    python 遞歸遍歷文件夾,并打印滿足條件的文件路徑實(shí)例

    下面小編就為大家?guī)?lái)一篇python 遞歸遍歷文件夾,并打印滿足條件的文件路徑實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Python設(shè)計(jì)模式行為型責(zé)任鏈模式

    Python設(shè)計(jì)模式行為型責(zé)任鏈模式

    這篇文章主要介紹了Python設(shè)計(jì)模式行為型責(zé)任鏈模式,責(zé)任鏈模式將能處理請(qǐng)求的對(duì)象連成一條鏈,并沿著這條鏈傳遞該請(qǐng)求,直到有一個(gè)對(duì)象處理請(qǐng)求為止,避免請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系,下圍繞改內(nèi)容介紹具有一點(diǎn)的參考價(jià)值,需要的朋友可以參考下
    2022-02-02
  • PyTorch 解決Dataset和Dataloader遇到的問(wèn)題

    PyTorch 解決Dataset和Dataloader遇到的問(wèn)題

    今天小編就為大家分享一篇PyTorch 解決Dataset和Dataloader遇到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python定時(shí)執(zhí)行程序問(wèn)題(schedule)

    Python定時(shí)執(zhí)行程序問(wèn)題(schedule)

    這篇文章主要介紹了Python定時(shí)執(zhí)行程序問(wèn)題(schedule),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 關(guān)于對(duì)python中self的深入理解

    關(guān)于對(duì)python中self的深入理解

    self代表類的實(shí)例,而非類,下面這篇文章主要給大家介紹了關(guān)于對(duì)python中self的深入理解,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Python如何使用OS模塊調(diào)用cmd

    Python如何使用OS模塊調(diào)用cmd

    這篇文章主要介紹了Python如何使用OS模塊調(diào)用 cmd,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論

郓城县| 卢龙县| 巴林左旗| 广水市| 葫芦岛市| 苍溪县| 昌都县| 都兰县| 孙吴县| 北安市| 桃园市| 保定市| 台州市| 霍邱县| 昌图县| 衢州市| 介休市| 仙居县| 普兰县| 遂平县| 镶黄旗| 镇远县| 长宁区| 屏山县| 新疆| 乐业县| 淮南市| 布拖县| 中超| 怀柔区| 广德县| 横峰县| 融水| 仪征市| 尖扎县| 乡宁县| 武隆县| 云林县| 巴中市| 雷州市| 乃东县|