python的open函数使⽤
在python中使⽤open函数对⽂件进⾏处理。
1.open()
python打开⽂件使⽤open()函数,返回⼀个指向⽂件的指针。该函数常⽤以下三个参数。
1.1 参数1
⽬标⽂件的路径+名字。最好使⽤r"路径"这种原始字符串写法,防⽌有转义字符影响实际路径。
1.2 参数2
操作⽂件的⽅式mode=‘⽅式’。mode=可以省略。下⾯对操作⽂件的⽅式进⾏详细说明:
(1)r
以只读⽅式打开⽂件。⽂件的指针将会放在⽂件的开头。这是open默认模式。如果⽂件不存在,会报错。
(2)rb
以⼆进制只读⽅式打开⼀个⽂件。⽂件指针将会放在⽂件的开头。注意这种⽅式不能使⽤encoding,不然会报错。
writelines()方法将什么写入文件
同样的内容使⽤⼀般⽅式和⼆进制的⽅式打开。
fp = open(r"E:\",'r',encoding='utf-8')
content = fp.readline()
print(content)
输出:加油,好好⼲!
fp = open(r"E:\",'rb')
content = fp.readline()
print(content)
输出:b’\xe5\x8a\xa0\xe6\xb2\xb9\xef\xbc\x8c\xe5\xa5\xbd\xe5\xa5\xbd\xe5\xb9\xb2\xef\xbc\x81’(3)r+
以读写⽅式打开⼀个⽂件。⽂件指针将会放在⽂件的开头。直接写⼊会覆盖⽂件开头的内容。
原始内容:
加油,好好⼲!别放弃
fp = open(r"E:\",'r+',encoding='utf-8')
fp.write("开⼼吧")
fp.close()
fp = open(r"E:\", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()
执⾏后:
开⼼吧好好⼲!别放弃
(4)rb+
以⼆进制读写⽅式打开⼀个⽂件。⽂件指针将会放在⽂件的开头。
(5)w
以写⼊打开⼀个⽂件。如果该⽂件已存在,则将其覆盖。如果该⽂件不存在,则创建新⽂件。
(6)wb
以⼆进制写⼊⽅式打开⼀个⽂件。如果该⽂件已存在,则将其覆盖。如果该⽂件不存在,则创建新⽂件。
(7)w+
以读写⽅式打开⼀个⽂件。如果该⽂件已存在,则将其覆盖。如果该⽂件不存在,则创建新⽂件。
原始内容:
开⼼吧好好⼲!别放弃
fp = open(r"E:\",'w+',encoding='utf-8')
fp.write("认真⼀点")
fp.close()
fp = open(r"E:\", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()
执⾏后直接覆盖所有原始内容:
认真⼀点
(8)wb+
以⼆进制读写格式打开⼀个⽂件。如果该⽂件已存在,则将其覆盖。如果该⽂件不存在,则创建新⽂件。
(9)a
以追加⽅式打开⼀个⽂件。如果⽂件已存在,⽂件指针将会放在⽂件结尾。即:新的内容将会被追加到已有的内容之后。如果该⽂件不存在,则创建新⽂件可⽤于写⼊。注意,不能读,读会出错。
(10)a+
以读写⽅式打开⼀个⽂件。如果⽂件已存在,⽂件指针将会放在⽂件结尾。即:新的内容将会被追加到已有的内容之后。如果该⽂件不存在,则创建新⽂件可⽤于读写。
原始内容:
认真⼀点
fp = open(r"E:\",'a+',encoding='utf-8')
fp.write("你就离成功近⼀点")
fp.close()
fp = open(r"E:\", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()
执⾏后追加:
认真⼀点你就离成功近⼀点
这时候,指针放在⽂件尾部,直接读取会没有内容,需要将指针移动(seek)到⽂件的头部:
with open(r"E:\",'a+',encoding='utf-8') as fp:
fp.seek(0,0)
content = fp.readline()
print(content)
(11)ab+
以⼆进制读写⽅式打开⼀个⽂件。如果⽂件已存在,⽂件指针将会放在⽂件结尾。即:新的内容将会被追加到已有的内容之后。如果该⽂件不存在,则创建新⽂件可⽤于读写。
1.3 参数3
编码的⽅式,常⽤utf-8,gbk等。如:encoding=‘utf-8’
如果是⼆进制的⽅式,这个参数不需要填,填了还会报错。
2.with open() as
这是open()的⼀种升级⽤法,控制块结束的时候⽂件会⾃动关闭,不需要显⽰地调⽤close()关闭⽂件。这种⽅法更⽅便使⽤,所以推荐⼤家使⽤这种⽅法。
with open(r"E:\",'r',encoding='utf-8') as fp:
content = fp.readlines()
3.open函数常⽤的⽅法
3.1 读
⽂件内容:
认真⼀点你就离成功近⼀点
啊啊啊啊啊啊啊啊啊啊啊
fffffffffff
(1)read()
⼀次性读取整个⽂件内容,将整个⽂件放到⼀个字符串中。使⽤read(size)⽅法,返回⽂件中的前size个字符:
content = fp.read()
输出:
认真⼀点你就离成功近⼀点
啊啊啊啊啊啊啊啊啊啊啊
fffffffffff
(2)readline()
每次读取⼀⾏内容。
content = fp.readline()
输出:
认真⼀点你就离成功近⼀点
(3)readlines()
⼀次性读取整个⽂件内容到⼀个迭代器以供我们遍历(读取到⼀个list中,以供使⽤,⽐较⽅便)
content = fp.readlines()
输出;
[‘认真⼀点你就离成功近⼀点\n’, ‘啊啊啊啊啊啊啊啊啊啊啊\n’, ‘fffffffffff’]
3.2 写
(1)write()
fp.write()的参数必须是⼀个字符串,就是你要写⼊⽂件的内容.
(2)writelines()
fp.writelines()的参数可以是列表,也可以是字符串。
3.3 获取⽂件读写类型
如果⽂件可写,则 fp.writable() ⽅法返回 True,否则返回 False。
如果⽂件是可读的,则 fp.readable() ⽅法返回 True,否则返回 False。
⽐如:以w⽅式打开的⽂件,fp.readable()返回False,fp.writable()返回True。
3.4 指针移动
seek
f.seek(偏移量,[起始位置])
起始位置的三种取值:0⽂件开头,1当前位置,2⽂件末尾
例⼦见1.3中(10)a+
3.5 当前指针位置
tell()返回⼀个整数,表⽰当前⽂件指针的位置(就是到⽂件头的字节数).
如果是utf-8编码,那么⼀个中⽂字符占⽤三个字节,⼀个英⽂字符占⽤⼀个字节。如果是gbk编码,那么⼀个中⽂字符占⽤两个字节,⼀个英⽂字符占⽤⼀个字节。
with open(r"E:\",'a+',encoding='utf-8') as fp:
content = fp.tell()
print(content)
打印:30
3.6 truncate
truncate(size) ⽅法⽤于截断⽂件,如果指定了可选参数 size,则表⽰截断⽂件为 size 个字符。 如果没有指定 size,则从当前位置起截断;截断之后 size 后⾯的所有字符被删除。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。