Python IO-檔案讀寫
阿新 • • 發佈:2018-12-14
檔案File操作流程:
1.開啟檔案:建立程式與檔案的聯絡
語法:file_obj = open(filename, mode)
filename:
原字串 r’c:\temp\text.txt’
轉義字串 ‘c:\\temp\\text.txt’
mode
r 只讀方式
w 開啟檔案只寫入
a 開啟一個檔案用於追加
+ r+,w+讀寫
b 二進位制
讀方式
寫方式
2.讀寫檔案
read readline readlines
write writelines
3.關閉檔案
file_obj.close()
例項
#----檔案讀寫 #1.開啟檔案(設定模式) # file_1 = open('day9.py', 'r', encoding='utf8')#讀模式 r file_name = 'filedemo\\2.txt' file_2 = open(file_name, 'w', encoding='utf8')#w w+ wb模式,開啟檔案第一件事就是清空 #a r+ rb+ 模式開啟檔案不會清空 # b,rb wb r+b w+b #2.做讀寫操作 #----讀的方法: read(讀全部) # redline(讀一行) # readlines(讀全部,返回列表,列表的一個元素就是檔案的一行) #----seek(offset='偏移量', whence='給offset指定相對位置',0:開頭 1:當前位置 2:末尾) # print('====read()====') # content_read = file_1.read(10)#一次讀10個位元組 # print(content_read) # print('當前位置:', file_1.tell())#獲取當前位置 # print(file_1.read(20)) # print('當前位置:', file_1.tell())#獲取當前位置 # file_1.seek(2, 0) # print('當前位置:', file_1.tell())#獲取當前位置 # print('====readline()====') # content_readline = file_1.readline(5) # print('第一次:', content_readline) # print('第二次:', file_1.readline(5)) # # print('====readlines()====') # content_readlines = file_1.readlines(40) # print(content_readlines) #----寫的方法: write # writelines #----寫操作 #====write==== constant_str = '123\n' + 'abc\n' +' 你好\n' file_2.write(constant_str) #====weitelines==== file_2.writelines(['123', '456', '789']) #3.關閉檔案 #file_1.close() file_2.close()#可讀寫模式 # r+ w+ file_name = r'filedemo/3.txt' with open(file_name, 'rb+') as f: print(f.read()) # f.write('\n中文') #b模式:1.使用encoding # 2.不使用字串,TypeError: a bytes-like object is required, not 'str' content_str = '\n中文' content_str_byte = content_str.encode('utf8') print(content_str_byte) f.write(content_str_byte) print('位置:', f.tell()) f.seek(0) # f.seek(2, 1) print('位置:', f.tell()) print(f.read())#複製圖片
file_name_ori = 1'../img1.jpg'
file_name_target = r'../ing2.jpg'
with open(file_name_ori, 'rb') as f:
content_byte = f.read()
with open(file_name_target, 'wb') as f:
f.write(content_byte)