1. 程式人生 > >day-06 檔案讀寫

day-06 檔案讀寫

# # -*- coding: utf-8 -*-
''' r 讀 w 寫 a 追加寫
r+ 讀寫 w+ 讀寫 a+讀寫
rb 讀位元組 wb 寫位元組
w r 是文字 rb wb非文字
../ (相對路徑)上一層 ../../ (上兩層)
'''

'''r 模式 只能讀,不能寫入內容'''
f=open('檔案',mode='r',encoding='utf-8')
# f.write('hello') #無法寫入 hello
# f.colse()
print(f)

'''w 模式 寫入之前清楚原有內容,若沒有檔案則新建並寫入內容'''
f=open('檔案',mode='r',encoding='utf-8')
f.write('hello')
f.flush() #重新整理
f.close()

'''a 模式 在末尾追加寫入內容'''
f=open('檔案',mode='a',encoding='utf-8')
f.write('hello')
f.close()

'''r+ 模式 游標在檔案開頭,先讀後寫,若先寫後讀,寫入多少內容就會覆蓋檔案前面多少內容,
無操作前寫入內容,會在檔案開頭寫入,若讀取了一些內容(不管讀取多少內容),寫入內容會在末尾
寫入內容後讀取不到檔案內容,需重新定義游標,將游標定義在檔案開頭 用.seek()定位游標,0表示開頭(0,0),1表示當前(0,1),2表示末尾(0,2)'''
f=open('檔案',mode='r+',encoding='utf-8')
f.read() # 讀取內容
f.write() # 寫內容
f.flush() # 重新整理
f.close() # 關閉

'''w+ 模式 無seek()無法讀取內容,一定要加seek(),寫入之前清楚原有內容,若沒有檔案則新建並寫入內容'''
f=open('檔案',mode='w+',encoding='utf-8')
f.write() # 寫內容
f.seek(0,0) #重新定位游標到檔案開頭
f.read() # 讀取內容
f.close() # 關閉

'''os 模式'''
import os
#將檔案,開啟寫入內容到檔案_副本
with open('檔案',mode='r',encoding='utf-8')as f1,open('檔案_副本',mode='w',encoding='utf-8')as f2:
s=f1.read() # 讀取
ss=s.replace('你好','hello') #將"你好"替換成"hello"
f2.write(ss) # 將ss的檔案內容寫入
os.remove('檔案') #刪除檔名
os.rename('檔案_副本','檔案1') #將"檔案_副本"重新命名為"檔案1"