python--文件

一. 打开文件
(1)打开文件
有文件/mnt/file,打开文件/mnt/file
f=open(’/mnt/file’)
(2)操作文件
给文件中添加内容
f.write(‘hello’)
(3)关闭文件
f.close()

f=open('/mnt/file')
print(f.writable()) ##查看是否可写
print(f.readable()) ##查看是否可读
f.write('hello')
f.close()

若打开文件时不加以说明,文件是只可读不可写,默认只可读

在这里插入图片描述

二.对文件操作进行设置
(1)w
可写,不可读

f=open('/mnt/file','w')
print(f.writable())
print(f.readable())
f.read()
f.close()

读时报错:
在这里插入图片描述
若文件不存在不会报错

f=open('/mnt/file1','w')
print(f.writable())
print(f.readable())
f.close()

(2)w+
可读,可写,写入内容时会覆盖文件原内容

f=open('/mnt/file','w+')
print(f.writable())
print(f.readable())
f.write('hello')
f.close()

若文件不存在不会报错,会创建新文件(注意:创建文件目录权限)

f=open('/mnt/file1','w+')
print(f.writable())
print(f.readable())
f.write('hello')
f.close()

(3)a
只可写,不可读
在这里插入图片描述
a+可读,可写,写入内容时不会覆盖原内容
在这里插入图片描述
三.指针
查看当前指针所在的位置

f=open('/mnt/file','w+')
print(f.tell())
f.write('python')
print(f.tell())
content = f.read()
print(content)

f.close()

在这里插入图片描述

四.文件的读取操作
(1)无指定条件查看
read():显示文件所有内容
readlines():读取文件内容,返回一个列表,列表的元素分别为文件行内容
readline():返回第一行内容

f = open('/mnt/file','rb+') #rb,二进制读取
print(f.read())

在这里插入图片描述

f = open('/mnt/file','rb+')
print(f.readline())

在这里插入图片描述

f = open('/mnt/file','rb+')
print(f.readlines())

在这里插入图片描述
(2)有条件查看
查看前四个字符

f = open('/mnt/file','rb+')
print(f.read(4))

在这里插入图片描述
去除结尾的字符

f = open('/mnt/file','rb+')
print([line.strip() for line in f.readlines()])

在这里插入图片描述
五.移动指针
seek的作用:移动文件的读取指针到固定位置。seek函数需要使用文件对象进行调用,无返回值
seek的三种模式
(1)f.seek(p,0)或f.seek§
将文件读取指针移动到文件的第p个字节处,表示绝对位置。f.seek(0)移动到文件头位置
(2)f.seek(p,1)
在当前位置的基础上,将文件读取指针一的P个字节,表示相对位置
(3)f.seek(p,2)
在文件的基础上,将文件指针移动p个字节,表示相对位置。
seek方法,移动指针
seek的第一个参数是偏移量:>0,表示向右移动,<0表示向左移动
seek的第二个参数是:
0:移动指针到文件开头
1:不移动指针
2:移动指针到末尾

f = open('/mnt/file','rb+')
f.write('xingxinglay')
print(f.read())

在这里插入图片描述
给文件添加内容后读取文件时看不到写入的信息,是因为写入时指针移动到写入字符的下一个位置,读取时从当前指针开始读,因此读取不到写入的内容
可通过移动指针来读取文件

f = open('/mnt/file','rb+')
print(f.tell())
f.write('xingxinglay')
print(f.tell())
f.seek(0)
print(f.read())
print(f.tell())
f.close()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值