對文件操做流程python
打開文件的模式有:linux
"+" 表示能夠同時讀寫某個文件windows
"U"表示在讀取時,能夠將 \r \n \r\n自動轉換成 \n (與 r 或 r+ 模式同使用)this
"b"表示處理二進制文件(如:FTP發送上傳ISO鏡像文件,linux可忽略,windows處理二進制文件時需標註)編碼
#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
|