文件的操作方法
文件只读
- 只读模式
- r: 以只读方式打开文件。文件的指针将会放在文件的开头。
- rb: 以二进制格式打开一个文件进行只读。指针将会放在文件的开头。一般进行非文本文件如图片等。
f1 = open('文件位置', mode='r', encoding='utf-8') # 文件位置可以为绝对为位置,在根目录下开始的位置,在与程序在相同目录下的为相对位置# mode 填写读写方式 r:文件只读 rb: f = open('文件位置', mode='rb') 不需写encoding,默认编码方式是bytes类型content = f1.read()print(content)f1.close()# 可以定义读的多少 以字符为单位f2 = open('sos.txt', mode='r', encoding='utf-8')content_2 = f2.read(2) # 读出来的都是字符print(content_2)f2.close()
文件只写
- 只写模式
- w: 打开一个文件只进行写入。如果该文件已存在则打开文件,则把原文件的内容全部清除再写。如果该文件不存在,则创建新文件。
- wb: 以二进制形式打开一个文件只进行写入。如果该文件已存在则打开文件,则把原文件的内容全部清除再写。如果该文件不存在,则创建新文件。一般进行非文本文件如图片。
# f = open('sos.txt', mode='w', encoding='utf-8')# f.write('3838438') # .write:所需写入的内容# f.close()f3 = open('sos.jpeg', mode='wb')f3.write('6666666'.encode('utf-8')) # 默认编码方式用.encode定义编码方式f3.close()
文件追加
- 追加模式
- a: 打开一个文件进行追加。如果该文件已存在,则将指针放在文件的结尾。新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件进行写入。
- ab: 以二进制的形式打开一个文件进行追加,如果文件存在则在文件结尾处将新的内容写入,如果不存在则创建新文件写入。
f4 = open('sos.txt', mode='a', encoding='utf-8')f4.write('88888')f4.close()f5 = open('sos.jpeg', mode='ab')f5.write('999'.encode('utf-8'))f5.close()
文件读写
- 读写模式
- r+ : 打开一个文件进行读写。指针将会放在文件的开头。
- r+b: 以二进制格式打开一个文件进行读写。指针将会放在文件的开头。一般进行非文本文件的读写。
f6 = open('sos.txt', mode='r+', encoding='utf-8')print(f6.read())f6.write('中国')f6.close()f7 = open('sos', mode='r+b') # bytes类型 读也会显示为bytes类型 注意汉子print(f7.read())f7.write('38'.encode('utf-8'))f7.close()
文件写读
- 写读模式
- w+: 打开一个文件进行读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,则创建新文件。
- wb+: 以二进制格式打开一个文件进行读写。如果该文件已存在则打开文件,从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般进行非文本文件处理等。
- PS: 如果不加seek 则不会读出东西
f8 = open('sos.txt', mode='w+', encoding='utf-8')f8.write('ss,dd')f8.seek(0) # 移动光标到句头位置print(f8.read())f8.close()
操作光标
- seek:操作光标是按字节去找(注意中文1字符=3字节)
f9 = open('sos.text', mode='r+', encoding='utf-8')counter = f9.seek(3) # 是按字节定光标的位置print(counter)print(f9.read())f9.close()
获取光标位置
- .tell:获取光标位置
f0 = open('sos.txt', mode='r+', encoding='utf-8')counter = f0.seek(3)print(f0.tell()) # 告知光标的位置f0.close()
自动关闭close
- 关键词:with # 可以打开多个文件
with open('sos.txt', mode='r', encoding='utf-8') as fs, open('day_5.txt', mode='r', encoding='utf-8') as fs1: print(fs.read(), fs1.read())
#Python# #软件开发##Python编程从入门到实践#