Python文件操作:文件的打开关闭读取写入

一、文件的打开关闭

Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作。

文件操作都分为以下几个步骤:

1.打开文件。

2.操作文件:读/写。

3.关闭文件。

操作系统中的文件默认处于存储状态,读写文件时需要请求操作系统打开一个要在当前程序操作的对象,打开不存在的文件可以创建文件。open()方法通过接收"文件路径"以及“文件打开模式”等参数来打开一个文件,并且返回文件对象。打开后的文件只能在当前程序操作,不能被另一个进程占用。操作之后一定将文件关闭,进程将释放对文件的控制,使文件恢复存储状态,这时,另一个进程将能够操作此文件。

open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。其中,file对象使用open函数来创建,file对象常用的函数如下:

file.close():关闭文件。关闭后文件不能再进行读写操作。

file.flush():刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。

file.fileno():返回一个整型的文件描述符(file descriptor FD 整型),可以用在如os模块的read方法等一些底层操作上。

file.isatty():如果文件连接到一个终端设备返回 True,否则返回False。

file.next():返回文件下一行。

file.read([size]):从文件读取指定的字节数,如果未给定或为负则读取所有。

file.readline([size]):读取整行,包括 "\n" 字符。

file.readlines([sizeint]):读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。

file.seek(offset[, whence]):设置文件当前位置。

file.tell():返回文件当前位置。

file.truncate([size]):截取文件,截取的字节通过size指定,默认为当前文件位置。

file.write(str):将字符串写入文件,返回的是写入的字符长度。

file.writelines(sequence):向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。

文件打开模式如下:

t:文本模式 (默认)。

x:写模式,新建一个文件,如果该文件已存在则会报错。

b:二进制模式。

+:打开一个文件进行更新(可读可写)。

U:通用换行模式(不推荐)。

r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。

r+:打开一个文件用于读写。文件指针将会放在文件的开头。

rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

w+:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

二、文件的读写

1.Python中读取文件的相关方法:

.read():一次读取文件所有内容,返回一个字符串或字节流。

.read(size):每次最多读取指定长度的内容,返回一个字符串或字节流。在Python3中size指定的是字符长度。

.readlines():一次读取文件所有内容,按行返回一个列表。

.readline():每次只读取一行内容。

我们来读取一个存放在D盘的名为“123.txt”的文本文件,该文件的字符编码为utf-8,其中包含的文本是北岛的诗歌《走吧》,如下所示。

#第一步:(以只读模式)打开文件

f= open('D:/123.txt', mode='r', encoding='utf-8')#第二步:读取文件内容

print(f.read())#第三步:关闭文件

f.close()

运行结果:

2.Python中写入文件的相关方法:

.write():向文件写入一个字符串或字节流。

.writelines():将一个元素全为字符串的列表写入文件。

.seek(offset):改变当前操作指针的位置,offset的值:

0——文件开头

1——当前位置

2——文件结尾

注意:Python字符串可以是二进制数据,而不是仅仅是文字。write()方法不会在字符串的结尾添加换行符('\n')。

我们创建一个文本文件用来写入文本,该文件的字符编码为utf-8,如下所示。

#第一步:(以只写模式)打开文件

f= open('D:/123.txt', mode='w', encoding='utf-8')#第二步:写入文件内容

f.write("人生若只如初见,何事秋风悲画扇。")#第三步:关闭文件

f.close()

运行结果:

也可以向文件写入一个列表,打印输出结果,如下所示。

f = open('D:/123.txt', mode='w+', encoding='utf-8')

ls=['一本正经','两厢情愿','三顾茅庐','四海为家']

f.writelines(ls)#写入内容在文件操作指针之前,用seek(0)将文件操作指针返回到文件开始使其顺利向后读入并打印内容,否则打印内容无法显示

f.seek(0)for line inf:print(line)

f.close()

运行结果:

参考资料:

https://www.runoob.com/python/python-files-io.html

python以写模式打开的文件无法进读操作_Python文件操作:文件的打开关闭读取写入...相关推荐

  1. python关闭读写的所有的文件-Python文件操作:文件的打开关闭读取写入

    Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...

  2. python以写模式打开录入_Python的学习(六)—-文件和输入输出处理 | 学步园

    Python中的文件和输入输出处理 1. 文件对象的概念 文件对象不仅可以用来访问普通的磁盘文件,还可以访问任何其他类型抽象层面上的文件. 例如实时地"打开一个URL"来读取Web ...

  3. python追加写模式_python(四)文件的读写追加模式

    1.文件的读模式:也是默认的方式, f=open('文件路径\文件名','r',encoding='utf-8'):以读的模式打开一个文件,这里的'r'也可以不写,读模式是默认模式,encoding= ...

  4. catia打开stp文件无响应_catia打不开stp文件怎么办 catia打不开stp文件解决办法

    catia打不开stp文件怎么办?catia是一款十分好用的模具制作软件.而最近有些小伙伴们发现使用catia打开stp文件的时候发现无法编辑出现错误的情况.不是很了解这种情况怎么解决的小伙伴们,赶紧 ...

  5. python目录及文件操作_python路径及文件操作,10.22,10.27

    csv 和ini文件处理 作者: 一个小菜鸡 csv常见格式 nums     options      arguments 逗号分割值 comma-Separated Values CSV是一个被行 ...

  6. python中xlrd写操作_Python读写操作Excel模块_xlrd_xlwt_xlutils

    Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...

  7. python读取文件按行分割字符串_python在TXT文件中按照某一字符串取出该字符串所在的行方法...

    python在TXT文件中按照某一字符串取出该字符串所在的行方法 主要流程:读取文件数据--将每一行数据分成不同的字符段--在判断 在某个字否段是否含与某个字符.(只是其中一种办法) 代码如下: wi ...

  8. python遍历目录压缩文件夹然后在发送邮件_python目录操作之python遍历文件夹后将结果存储为xml...

    Linux服务器有CentOS.Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在 ...

  9. 解决办法:360压缩解压出现空白文件创建失败,但压缩包文件无损坏显示有十几个文件

    问题如下:压缩文件正常有8.5M,15个文件,但360压缩打开只有一个空文件. 解决办法:如果,压缩文件右键→打开方式→Windows资源管理器,就可以打开了.

最新文章

  1. 【学习参考】Animate.css动画演示
  2. 【Java】类与对象 - 参数传值
  3. 在Win7下利用VirtualBox和Vagrant安装Docker
  4. 深度学习中 batchnorm 层是咋回事?
  5. 工作流调度系统介绍,常见工作流调度系统对比,azkaban与Oozie对比,Azkaban介绍与特性(来自学习笔记)
  6. [转]基于ROS平台的移动机器人-4-通过ROS利用键盘控制小车移动
  7. iOS之UITraitCollection
  8. sscanf的高级用法
  9. c语言综合知识,软件设计师教程综合知识集锦之C语言编程风格
  10. linux 画图 源码,Drawing:一款开源的类似微软画图的 Linux 桌面应用
  11. 为什么联通走归属地ip_为什么企业争先恐后地进行品牌虚拟IP打造?
  12. java 内存指针_java内存模型详解
  13. 数组中其余的排除_[leetcode 剑指offer系列] 面试题04. 二维数组中的查找
  14. phabricator客户端使用(windows)
  15. springboot日志输出异常_基于aop进行springboot接口调用日志和埋点日志输出,支持json格式方便elk收集...
  16. 儿童机器人编程入门优先学习什么?
  17. linux 运行有道词典,ubuntu安装有道词典的教程详解
  18. docker启动mysql报错Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use
  19. c语言 函数调用顺序,C++函数定义和调用过程(超详细)
  20. SAP ABAP ZBA_R003 查询用户下的角色里的公司

热门文章

  1. 中国高等职业院校乒乓球锦标赛
  2. 字魂字体包全网站VIPps古风毛笔书法cdr广告海报设计素材字库下载
  3. GD32串口接收字符串总结
  4. C语言:如何在cmd命令窗口上玩贪吃蛇游戏
  5. ae表达式修复_修复AE表达式兼容性防止报错Expression Universalizer v3.1.4脚本下载
  6. POI 图表中加入文本框
  7. ListBox的基本用法
  8. CentOS软件管理 - YUM工具
  9. 名画19 董源《画选三幅》
  10. 目录:什么是设计模式