Python之路--文件操作,Python文件,内容概要文件读写模式
Python之路--文件操作,Python文件,内容概要文件读写模式
内容概要
文件读写模式文件的其他操作文件的读写模式
f = open(‘文件名‘,mode = ‘‘,encoding = ‘‘)文件名必须是字符串mode 是模式,不同的模式,可以达到不同的效果r 只读模式rb 读取字节编码w 只写模式wb 修改字节编码a 追加模式ab 追加字节编码r+ 读写模式w+写读模式a+写读模式只读
f = open(‘文件名‘,mode = ‘r‘,encoding = ‘utf-8‘)或者with open(‘文件名‘,mode = ‘r‘,encoding = ‘utf-8‘) as f:[上下文管理]:会自动关闭文件#t2.py文件内容:第一次测试f = open(‘t2.py‘,‘r‘,encoding = ‘utf-8‘)print(f.read()) #这里的mode= 可以省略,直接写模式即可#输出结果:第一次测试注意:文件名的位置需要制定文件的路径+文件名可使用相对路径和绝对路径,使用方法如下:第一种:绝对路径引用
f = open(‘C:\Users\15471\Desktop\123.tet‘,‘r‘,encoding = ‘utf-8‘)#这种文件位置引用会报错,正确修改方法f = open(‘C:\\Users\\15471\Desktop\\123.txt‘,‘r‘,encoding = ‘gbk‘)#或者f = open(r‘C:\Users\15471\Desktop\123.txt‘,‘r‘,encoding = ‘gbk‘)print(f.read())第二种 相对路径引用
f = open(‘t2.py‘,‘r‘,encoding = ‘utf-8‘)print(f.read()) #同一文件夹下f = open(r‘..\day06\1234.py‘,mode = ‘r‘,encoding = ‘utf-8‘) #不同文件夹下(..\代表上一层文件,再加一个代表再往上一层)print(f.readline())
文件内容读取
f.read() 若括号里为空,代表全部一次性读取,若有数字则代表读取前多少个字符#t2内容(‘第一次测试‘)f = open(‘t2.py‘,‘r‘,encoding = ‘utf-8‘)print(f.read(2)) #只读前两个字符打印内容:第一f.readline()读取第一行,若里面有数字,按照数字前多少个提取,但是如果字数大于本行的总字数,还是返回本行的内容.
f = open(‘t2.py‘,‘r‘,encoding = ‘utf-8‘)print(f.readline())打印内容:第一次测试f = open(‘t2.py‘,‘r‘,encoding = ‘utf-8‘)print(f.readline(2))打印内容:第一f = open(‘t2.py‘,‘r‘,encoding = ‘utf-8‘)print(f.readline(6))打印内容:第一次测试f.reanlines() 以列表的形式呈现所有的内容,若括号里有数字(大于0),如果数字小于本行的长度,则返回本行,如果大于本行小于下一行的长度,则返回两行,以此类推;结果以列表的形式呈现.
#t2内容(第一次测试又新增一行)f = open(‘t2.py‘,‘r‘,encoding = ‘utf-8‘)print(f.readlines())打印内容:[‘第一次测试\n‘, ‘又新增一行‘]
读取字节码
f = open(‘文件名‘,mode = ‘rb‘)orwith open(‘文件名‘,mode = ‘rb‘) as f:with open(‘t2.py‘,‘rb‘)as f: print(f.read())打印结果:b‘\xe7\xac\xac\xe4\xb8\x80\xe6\xac\xa1\xe6\xb5\x8b\xe8\xaf\x95\r\n\xe5\x8f\x88\xe6\x96\xb0\xe5\xa2\x9e\xe4\xb8\x80\xe8\xa1\x8c‘
只写
写入文件内容
with open(‘文件名‘,mode = ‘w‘,encoding = ‘utf-8‘) as f:with open(‘t2.py‘,‘w‘,encoding=‘utf-8‘)as f: print(f.write("今天天气真好"))打印结果:6t2文件内容:今天天气真好
注意:write在进行写入的过程中,是先把原有内容全部清除再进行写入,打印的内容是写入的字符长度
with open(‘t5.py‘,‘w‘,encoding=‘utf-8‘)as f: print(f.write("今天天气真好"))注意:若需要写入的文件不存在,它会先新建一个,再写入
写入字节码
with open(‘文件名‘,mode = ‘wb‘) as f:f = open(‘timg.jpg‘,‘rb‘)f1 = open(‘timg.jpg‘,‘wb‘)f1.write(f.read())原理:先打开要修改的文件,转成字节码后,再进行写入,相当于复制一份如果要单独写入字节码,就不需要打开f文件
追加模式
追加文件内容
with open(‘文件名‘,mode = ‘r‘,encoding = ‘utf-8‘) as f:#t2内容(‘第一次测试‘)with open(‘t2.py‘,‘a‘,encoding=‘utf-8‘)as f: print(f.write("追加记录"))打印结果:4t2文件内容:今天天气真好追加记录 #默认在文件末尾添加
追加字节码
with open(‘文件名‘,mode = ‘ab‘) as f:跟上文一样,在里面就不赘述可读可写模式
with open(‘文件名‘,mode = ‘r+‘,encoding = ‘utf-8‘) as f:with open(‘t2.py‘,‘r+‘,encoding=‘utf-8‘)as f: print(f.read()) print(f.write(‘尝试一下‘))t2文件内容:今天天气真好尝试一下 默认在文件末尾添加with open(‘t2.py‘, ‘r+‘, encoding=‘utf-8‘)as f: print(f.write(‘尝试一下‘)) print(f.read())t2文件内容:尝试一下真好 #把之前的‘今天天气给覆盖了‘注:尽量采用先读后写模式,如果先写后读会默认从开头写入,造成文件内容混乱
可写可读模式
with open(‘文件名‘,mode = ‘w+‘,encoding = ‘utf-8‘) as f:with open(‘t2.py‘,‘w+‘,encoding=‘utf-8‘)as f: f.write("再试试,看可不可以") f.seek(0) print(f.read())运行结果:再试试,看可不可以因为write是先删除后写入,所以之前的内容就没有了with open(‘t2.py‘,‘w+‘,encoding=‘utf-8‘)as f: f.seek(0) #定位光标的位置,里面的数字代表字节长度 print(f.read()) f.write("再试试,看可不可以")注:尽量采用先写后读,因为先读后写,后面写的内容是无法读取的with open(‘文件名‘,mode = ‘a+‘,encoding = ‘utf-8‘) as f:
with open(‘t2.py‘,‘a+‘,encoding=‘utf-8‘)as f: f.write(‘第三种方法再试试‘) f.seek(0) print(f.read())运行结果:今天天气真好第三种方法再试试with open(‘t2.py‘,‘a+‘,encoding=‘utf-8‘)as f: f.seek(0) print(f.read()) f.write(‘第三种方法再试试‘)运行结果:今天天气真好注:尽量采用先写后读,因为先读后写,后面写的内容无法读取的
文件的其他操作
with open(‘t2.py‘,‘a+‘,encoding=‘utf-8‘)as f: print(f.seek(3))#定位光标的位置,一个字节是一个print(f.tell()) #显示光标所在位置之前的字节长度 print(f.read())#打印结果:3 3 今天天气真好
seek用法
单数字代表字节所在的位置,3个字节是一个汉字,1个字节是一个英文seek(0,0) 起始位置seek(0,1)当前位置seek(0,2)末尾位置f.truncate() 截取
根据括号的数字定位字节位置,删除字节后面的数据,3个字节是1个中文字符##今天天气真好with open(‘t2.py‘,‘a+‘,encoding=‘utf-8‘)as f: f.truncate(3)运行结果:今
文件的重命名
import oswith open(‘t2.py‘,‘r‘,encoding=‘utf-8‘) as f, open(‘t3.py‘,mode = ‘a‘,encoding=‘utf-8‘) as f1: msg = f.read() msg = msg.replace(‘好‘,‘困‘) f1.write(msg)os.remove(‘t3.py‘)os.rename(‘t3‘,‘t2‘)第二种方法--逐条执行,减轻电脑压力
import oswith open(‘t1.py‘,‘r‘,encoding=‘utf-8‘) as f, open(‘t5.py‘,mode = ‘a‘,encoding=‘utf-8‘) as f1: for i in f: i = i.strip().replace(‘困‘,‘好‘) f1.write(i)os.remove(‘t1.py‘)os.rename(‘t5.py‘,‘t1.py‘)
Python之路--文件操作
相关内容
- python笔记-----文件操作,python文件,文件操作创建一个文
- python1.0-----turtle模块,pythonturtle,turtle:绘图模
- Python面向对象编程——简介,为什么要面向对象编程
- python基础之函数式编程,python函数编程,一、函数的定义
- Python【每日一问】15,每日五问,问:简述with方法
- Linux 安装Python37,Linux安装Python,1、下载python
- puthon基础(一),python基础知识,1,计算机基础。cp
- Python csv模块使用方法,,import csv
- python程序中使用MySQL数据库,, 目录
- Python【HTTP响应状态码】,,# HTTP响应状态
评论关闭