文件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)