假设文件名为:loga.txt 内容为:你说什么呢
1 -- open() 打开文件
参数1: 要打开的文件路径 文件名
参数2: 打开方式
r ---- 只读模式,文本必须存在
r ---- 读写模式,文件必须存在( 常用这种方式操作文件 )
w ---- 只写模式,不能调用read()进行读操作,如果打开一个已存在的文件,会先清空内容
w ---- 读写模式,如果打开一个已存在的文件,会先清空内容
a ---- 追加模式,不能调用read()进行读操作,在文件的末尾汉添加内容,如果文件不存在,会自动创建
a ---- 追加读模式,在文件的末尾添加内容,如果文件不存在,会自动创建( 常用这种方式操作文件 )
rb 、wb 、ab ,这种是二进制模式打开或者读取,一些音乐文件
常用的是 r 和 a 这二种方式进行文件操作
代码语言:javascript复制fp = open('loga.txt',mode='r ',encoding='utf-8')
#先读一次文件内容,将光标设置到文件末尾,然后在进行写入操作
fp.read()
fp.write("bbbbbbbbb")
fp.close()
#执行后文件的内容:
#你说什么呢bbbbbbbbb
2 -- read() 读取文件内容
参数:读取的字符数量,默认全部读取
代码语言:javascript复制fp = open('loga.txt',mode='r ',encoding='utf-8')
print(fp.read(3))
fp.close()
#结果:
#你说什
3 -- readline() 只读取一行内容
每调用一次,就会读取一行的内容,然后将光标设置到下一行的开始位置
注意:该函数会自动给读取到的内容后加一个 换行符
代码语言:javascript复制#文件内容:
#你说什么呢
#12345
#好好的
fp = open('loga.txt',mode='r ',encoding='utf-8')
print(fp.readline())
print(fp.readline())
print(fp.readline())
fp.close()
#执行结果:
#你说什么呢
#
#12345
#
#好好的
4 -- readines()
将文件内容按照行的方式进行读取,返回一个列表,每一行内容为一个元素
代码语言:javascript复制#文件内容如下:
#你说什么呢
#12345
#好好的
fp = open('loga.txt',mode='r ',encoding='utf-8')
print(fp.readlines())
fp.close()
#结果:
#['你说什么呢n', '12345n', '好好的']
5 -- write() 写入文件内容
代码语言:javascript复制fp = open('loga.txt',mode='r ',encoding='utf-8')
#先读一次文件内容,将光标设置到文件末尾,然后在进行写入操作
fp.read()
fp.write("aaa")
fp.close()
6 -- close() 关闭文件
操作完文件后,必须进行关闭,否则容易出错
---------------------------操作文件光标的函数---------------------------
1 -- seek() 设置光标的位置
参数:0 表示将光标设置到文件开始位置
注意:该函数是按照 字节 的方式进行设置,在utf-8环境下,一个中文字符占用3个字节,英文字符占用1个字节
2 -- tell() 返回当前光标的所在位置
---------------------------自动调用关闭文件的功能写法---------------------------
在很多时侯,会有可能在操作完文件后,忘记调用close函数进行关闭,python提供了一个自动关闭文件的方法
支持同时打开多个文件,用 ' , '号隔开
代码语言:javascript复制with open('loga.txt',mode='r ',encoding='utf-8') as fp:
print(fp.read())
执行完 print函数后,会自动调用close进行关闭文件操作。
---------------一次打开二个文件,进行操作
代码语言:javascript复制with open('loga.txt',mode='r ',encoding='utf-8') as fp,open('loga.txt',mode='r ',encoding='utf-8') as fp2:
print(fp.read())
print(fp2.read())