python文件操作

python文件操作

w 只能操作寫入 r 只能讀取 a向文件追加
wb 只能操作寫入進制數據 rb 只能讀取進制數據 ab向文件追加進制數據
w+ (先清除在寫)可寫可讀 r+(先讀再寫)可讀可寫 a+ 可讀可寫
wb+ 可寫入進制數據
如果用r模式 文件必須存在,不然報錯
w模式打開文件,如果文件中有數據,再次寫入內容,會把原來的覆蓋掉
文件不能修改

 1 #打開文件,打開方式utf-8(沒有賦變量,無法後續操作)
 2 data=open("yesterday",encoding="utf-8").read()#相對路徑打開
 3 
 4 #只讀
 5 f=open("yesterday",'r',encoding="utf-8")#bytes-->str
 6 可讀取非文字文件
 7 f = open("yesterday",'rb')#即 binary mode,read()操作返回的是bytes
 8 
 9 # 只寫
10 #對於w:沒有此文件就會創建文件
11 # f = open('log',mode='w',encoding='utf-8')
12 # f.write('騎兵步兵')
13 # f.close()
14 # 先將源文件的內容全部清除,在寫。
15 # f = open('log',mode='w',encoding='utf-8')
16 # f.write('附近看到類似糾紛')
17 # f.close()
18 # f = open('log', mode='wb')
19 # f.write('附近看到類似糾紛'.encode('utf-8'))#用utf-8編碼方式寫入
20 # f.close()
21 # (先清除在寫)可寫可讀
22 # f = open('log',mode='w+',encoding='utf-8')
23 # f.write('aaa')
24 # f.seek(0)
25 # print(f.read())
26 # f.close()
27 
28 #只追加
29 # f = open('log',mode='a',encoding='utf-8')
30 # f.write('佳琪')
31 # f.close()
32 # f = open('log',mode='ab')
33 # f.write('佳琪'.encode('utf-8'))
34 # f.close()
35 
36 # 可讀可寫
37 # f = open('log',mode='a+',encoding='utf-8')
38 # f.write('佳琪')
39 # f.seek(0)#重置光標位置
40 # print(f.read())
41 # f.close()
42 
43 # 讀寫
44 # f = open('log',mode='r+',encoding='utf-8')
45 # print(f.read())
46 # f.close()
47 
48 
49 
50 #文件句柄
51 f=open("yesterday2",'w',encoding="utf-8")
52 #data=f.read()#讀取(光標移到了最後一行,無法再讀取)
53 f.write("哈哈真好玩,\n")#寫入
54 f.write("那必須的。")
55 f.close()
56 """
57 #for i in range(5):
58 #    print(f.readline())#讀取一行
59 #for line in f.readlines():#f.readlines結果是一個列表
60 #    print(line)

循環

 1 #讀取整個文件後循環(佔內存)
 2 for index,line in enumerate(f.readlines())
 3     if index==9:
 4         print("---分割---")
 5         continue
 6     print(line)
 7 """
 8 """
 9 #只循環當前一行
10 count=0
11 for index in f:
12     if count==9:
13         print("------分割線-------")
14         count += 1
15         continue
16     print(index.strip())
17     count+=1
18 
19 with open("yesterday2",'w',encoding="utf-8") as ff:#和open()一樣,但無需close()
20 #with open("yesterday2",'r',encoding="utf-8") as ff,\
21     open("yesterday",'a',encoding="utf-8") as fff:
22     print(ff.read())

函數

f = open('log',mode='a',encoding='utf-8')#log文件名
# print(f.tell())#讀取光標位置(按字節找)
# print(f.read(30))#讀字符
# print(f.tell())
# f.seek(0)#重置光標位置(按字節找)
# print(f.tell())
# f.readable()#判斷是否可讀
# f.readline()#一行一行的讀
# f.readlines()#每一行當成列表中的元素,添加到列表中
# f.truncate(5)#對原文件進行截取,其餘刪除

 文件“修改”

1 #文件假修改(原文件->str(修改)->新文件->原文件刪除)
2 with open('log',encoding='utf-8') as f,open('log.bak','w',encoding='utf-8') as f2:
3     for line in f:
4         if "佳琪" in line:
5             line=line.replace('佳琪','琪琪')
6             f2.write(line)
7 import os
8 os.remove('log')#刪除
9 os.rename('log.bak','log')#重命名

 

posted @ 2018-09-02 00:14 長河落日圓 閱讀(...) 評論(...) 編輯 收藏
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章