文件

1、操作
	通過open()函數打開文件,默認是r(只讀)模式
	處理非文本:b,輸入輸出是字節
	只要有w就會清空前面的所有操作
	
2、只讀(r,rb)
	f = open("day1.txt",mode="r",encoding="utf-8")
    s = f.read()
    f.close()
    print(s)
    
	f = open('ha',mode='rb')#讀取的內容就是字節
	s = f.read()
	print(s.decode("utf-8"))
	f.close()
	s.decode("utf-8") #字節解碼
	
3、只寫(w,wb) #寫入前清掉原來的內容
	f = open('ha',mode='w',encoding='utf-8')
	f.write("hdkahdjsdh")
	f.flush()
	f.close()
	
	f = open('ha',mode='ab')
	f.write("嘻嘻".encode("utf-8"))
	f.close()

4、追加(a,ab)(在原來的基礎上增加內容)
	f = open('ha',mode='a',encoding='utf-8') 
	f.write("廢物")
	f.flush()
	f.close()
	
	f = open('ha',mode='wb')
	f.write("哈哈".encode("utf-8"))
	f.close()
	
5、讀寫(r+)默認情況光標在文件開頭
如果沒有任何操作直接寫就是在開頭,讀取了一些內容再寫,寫入的是末尾
	f = open('ha',mode='r+',encoding="utf-8")
	s = f.read()
	f.write("周杰倫")
	f.flush()
	f.close()
	print(s)
	
6、寫讀(w+)基本不用
	f = open('ha',mode='w+',encoding="utf-8")
	f.write("陳奕迅")
	f.seek(0) #移動光標到開頭
	s = f.read()
	print(s)
	f.flush()
	f.close()

7、其他相關操作
	read(n):從當前光標位置讀取n個字符
	seek(n):移動到xx位置,中文是3的倍數,第二個參數表示從哪個位置進行偏移,默認是0,表示開頭,1表示當前位置,2表示結尾
			開頭:seek(0)
			末尾:seek(0,2)
			
8、文件內容修改
	import os
	# with不需要關閉文件
	with open('ha',mode='r',encoding='utf-8') as f1 ,\ #兩行是一行
	open('哈哈2',mode='w',encoding='utf-8') as f2:
	    s = f1.read()
	    ss = s.replace('多','哈')
	    f2.write(ss)
	os.remove('ha') #刪除
	os.rename('哈哈2','ha') #重命名文件
import os

	# with不需要關閉文件
	with open('ha2', mode='r', encoding='utf-8') as f1,\
	open('ha', mode='w', encoding='utf-8') as f2:
	    for line in f1:
	        s = line.replace('哈','嘻')
	        f2.write(s)
	os.remove('ha2')  # 刪除
	os.rename('ha', 'ha2')  #重命名文件)
	
9、讀取多行
	f = open('ha',mode='r',encoding='utf-8')
	for line in f: # 每次讀取一行,賦值給前面的line
	    print(line)
	f.close()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章