Python编程基础13:文件读写操作
【摘要】
文章目录
一、文件概念二、打开文件(一)文件打开函数 - open()1、函数作用2、函数调用格式3、案例演示(1)以默认方式(r - 只读)打开文件(2)以只写方式(w - 只写)打开文件(3)...
一、文件概念
- 文件是操作系统管理和存储数据的一种方式。Python使用内置的文件对象来处理文件。
- 在D:/python_work目录里创建lesson13目录,在该目录下创建一个文本文件 - test.txt
二、打开文件
(一)文件打开函数 - open()
1、函数作用
- open()函数用于打开文件,返回一个文件对象
- 打开文件后,Python用一个文件指针指示当前读取位置。以a或w方式打开文件时,文件指针指向文件末尾;以r方式打开文件打开文件,文件指针指向文件开头。
2、函数调用格式
- myfile = open(filename [, mode])
- 参数1 - filename 文件名字符串
- 参数2 - mode 文件读写模式
3、案例演示
(1)以默认方式(r - 只读)打开文件
- 打开
d:\python_work\lesson13\test.txt
- 查看文件内容
- 关闭文件
- 删除文件变量
- 说明:以r方式打开文件,文件指针指向文件头(第一行)
(2)以只写方式(w - 只写)打开文件
- 以只写方式打开‘love.txt’文件
- 查看love.txt文件文件,却发现空空如也
- 调用文件的flush()方法,将缓冲区的数据写入到指定文件
- 查看文件,发现数据已写入
(3)以追加方式(a - 追加)打开文件
- 以追加方式打开“love.txt”(打开之前先关闭)
- 查看追加数据之后的文件内容
(4)以可写可读方式(w+)打开文件
(二)文件读写函数
- 显示文件 - test.txt
1、myfile.read()
- 把整个文件内容读入一个字符串
- 问题:怎么知道一个文件的长度?
- 为什么是42?因为第一行和第二行末尾都有一个换行符(
'\n'
) - 当调用一次read()函数,文件指针就指向文件尾,此时读取不到任何内容。
- 如果希望再次读取全部内容,可以将文件指针移到文件头,使用seek(0)即可
2、myfile.read(n)
- 把n个字符串读入一个字符串(问题:n能否超过文件的长度?)
- 第一行有13个可见字符(还有一个换行符),读取第一行的可见字符
- 要读第二行
- 由于第一行的换行符没有读取,导致第二行的十四个可见字符没有完整读取出来
- 读取第三行
- 重新定位到文件头,读取100个字符,看结果如何
3、myfile.readline()
- 读一行,包含行尾符号(文本文件换行符为“\n”,二进制文件换行符是“\r\n”)
- 读完三行之后,我们知道文件已经读完了,如果继续调用readline(),会出现错误吗?
- 结果是返回空字符串
- 可以利用while循环和readline()读取全部行
- 这个程序有一个隐藏的bug,当文件只有一行时,没有任何输出内容,怎么解决这个问题?
4、myfile.readlines()
- 把整个文件内容读入一个字符串列表,每一行为一个字符串
5、myfile.write(xstring)
- 将字符串写入到文件指针位置,返回写入的字符个数
- 读取整个文件内容
6、myfile.writelines(xlist)
- 将列表写入文件指针位置,返回写入的字符个数
- 任务:在第一行和第二行之间插入三行新内容
- 分析:第一行有13个可见字符加一个换行符,指针应该定位到第二行开头,seek(15)。
- 运行结果不正确,不是插入,还是追加,这个问题怎么解决呢?
- 恢复文件test.xt内容
- 以r+模式打开文件,再来尝试,结果接近一点目标,但还是没有彻底解决问题
文章来源: howard2005.blog.csdn.net,作者:howard2005,版权归原作者所有,如需转载,请联系作者。
原文链接:howard2005.blog.csdn.net/article/details/121979210
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)