python:文件操做

對文件操做流程python

  1. 打開文件,獲得文件句柄並賦值給一個變量
  2. 經過句柄對文件進行操做
  3. 關閉文件 

打開文件的模式有:linux

  • r,只讀模式(默認)。
  • w,只寫模式。【不可讀;不存在則建立;存在則刪除內容;】
  • a,追加模式。【可讀;   不存在則建立;存在則只追加內容;】

"+" 表示能夠同時讀寫某個文件windows

  • r+,可讀寫文件。【可讀;可寫;可追加】
  • w+,寫讀
  • a+,同a

"U"表示在讀取時,能夠將 \r \n \r\n自動轉換成 \n (與 r 或 r+ 模式同使用)this

  • rU
  • r+U

"b"表示處理二進制文件(如:FTP發送上傳ISO鏡像文件,linux可忽略,windows處理二進制文件時需標註)編碼

  • rb
  • wb
  • ab
#author wangzhaoyang
#f= open('test','r',encoding=('utf-8'))  #  r,w,a,r+.w+,a+
#f.read() #一次性讀取全部
f= open('test1','a',encoding=('utf-8'))  #  r,w,a,r+.w+,a+
f.write(" \nthis is test") #
f.close()

 循環字典spa

set_test = {"stu001":"wangzhaoyang","stu002":"ligang"}
for key in set_test:
    print(key,set_test[key])
for  k,v in set_test.items():
    print(k,v)

經常使用操做指針

f= open('test1','a',encoding=('utf-8'))  #  r,w,a,r+.w+,a+(追加讀)
f.write(" \nthis is test") #f.read()   讀所有
f.close()  #關閉文件
f.readlines()#  列表,一次性所有讀到內存中
f.readline()  #  一行一行的讀,可是會把文件先讀到到內存中

for line in f:  ###一行一行的讀,效率最高,最經常使用的
    print(line)
print(f.tell())  ##打印指針位置
f.seek(0)   ##將文件指針移動到指定位置
print(f.encoding)  ##打印文件編碼
print(f.name)  #打印文件,名字

f.flush()  #將文件刷新到硬盤上,強制刷到硬盤上
f.truncate(10)  #截斷,截取十個字符

進度條code

import   sys,time
for i in range(50):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(0.2)

文件替換,打開兩個文件blog

f = open("test","r",encoding=("utf-8"))
f_new=open("test1","w",encoding=("utf-8"))
for line in f:
    if "毀滅性的的那種"  in line:
        line=line.replace("毀滅性的的那種","wangzhaoyang123")
    f_new.write(line)
f.close()
f_new.close()

 

with語句內存

爲了不打開文件後忘記關閉,能夠經過管理上下文,即:

1
2
3
with  open ( 'log' , 'r' ) as f:
     
     ...

如此方式,當with代碼塊執行完畢時,內部會自動關閉並釋放文件資源。

在Python 2.7 後,with又支持同時對多個文件的上下文進行管理,即:

1
2
with  open ( 'log1' ) as obj1,  open ( 'log2' ) as obj2:
     pass
相關文章
相關標籤/搜索