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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python-文件基本操作(二)

發布時間:2025/7/14 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python-文件基本操作(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

在上一篇文章中,簡單介紹了打開文件的方法以及關于讀、寫、追加的操作,點擊此處查看。

在此篇文章中,繼續介紹另外一種打開文件的方法和幾種同時讀寫的模式。

?

一、打開文件方法:with

使用file()或open()打開文件時,最后一定要使用close()方法來關閉文件,為了避免忘記使用,還使用使用with的方法開打開文件,代碼如:

with open ('文件名','模式') as f:...

其中,f為文件句柄,該打開文件的方式等同于f=open('文件名','模式')

此方法也可以一次打開多個文件,如:

with open ('文件名1','模式') as f1,open('文件名2','模式') as f2.....:...

當文件過多時,會導致一行代碼過長的情況,因此推薦使用如下寫法:

with open ('文件名1','模式') as f1,\open ('文件名2','模式') as f2:...

?

我們來使用closed()判斷文件是否關閉

#使用open()方法打開,不加入close() >>> f=open('info.log','r') >>> print f.closed() False#使用open()方法打開,加入close() >>> f=open('info.log','r') >>> f.close() >>> print f.closed() True#使用with打開 >>> with open ('info.log','r'): >>> print f.closed() #注意print一定要與with處于同一個結構層次下 True

?

二、幾種同時讀寫模式

在python中除了普通打開模式(r、w、a)外,還有幾種同時讀寫的模式,包括:

  r+:讀寫,可讀可寫,若文件不存在,報錯

  w+:寫讀,可讀可寫,創建新文件

  a+:追加和讀,可讀可追加,若文件不存在,則創建

?

三、指針

為了便于理解同時讀寫模式,首先引入指針

有一個文件info.log ?文件內容如下:

①獲取文件句柄所在的指針tell()

例子:

>>> f=file('info.log','r') >>> print f.tell() #獲取初始時的指針 >>> print f.readline() #讀取文件第一行 >>> print f.tell() #獲取讀完第一行后的指針 >>> f.close() 0           #第一次指針的位置 aaaa 5 #第二次指針的位置

?

②設置文件句柄所在的指針seek() 

例子:

>>> f=file('info.log','r') >>> print f.tell() >>> print f.readline() >>> f.seek(3) #設置指針位置 >>> print f.tell() >>> f.close()

?

四、讀寫:r+

代碼:

#使用r+打開文件時,不用read() >>> f=open('info.log','r+') >>> f.seek(5) #指針指向第二行 >>> print f.tell() >>> f.write('1111') >>> print f.tell() >>> f.close() 5 9

文件結果:

?

注意:當使用r+打開文件時,如果使用了read(),那么不管指針在哪里,用write()方法時,新增的內容始終在文件結尾,除非在read()后重新指定了指針。如下:

>>> f=open('info.log','r+') >>> f.readline() #讀取文件第一行內容 >>> print f.tell() >>> f.write('1111') >>> print f.tell() >>> f.close() 5 25

文件結果:

?

五、寫讀:w+

>>> f=open('info.log','w+') >>> print f.read() >>> f.write('1111\n') >>> f.write('2222') >>> print f.tell() >>> pring f.read() >>> f.seek(0) >>> print f.read() >>> f.close() #執行結果#由于是w+模式,因此會先覆蓋原文件內容,此時內容為空,print f.read() 結果為空 8 #兩次write()后,查看指針位置#此時指針處于文件末尾,pring f.read()的結果為空 11112222 #重新把指針指向文件開頭后,再print f.read(),有結果

?

六、追加讀:a+

>>> f=open('info.log','a+') >>> print f.tell() >>> print f.read() >>> f.write('1111') >>> print f.tell() >>> print f.read() >>> f.seek(0) >>> print f.read() >>> f.close() #執行結果 21 #應為是a+模式打開,指針會指向文件結尾#指針在文件結果,因此print f.read()內容為空 25 #寫入內容后,查看指針位置#寫入內容后,指針還是在結尾,因此print f.read()內容還是為空 aaaa #重新定位指針后,print f.read()出的內容 bbbb ccccc dddd

  

?

轉載于:https://www.cnblogs.com/nizhihong/p/6545686.html

總結

以上是生活随笔為你收集整理的python-文件基本操作(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。