python以写模式打开的文件无法进读操作_Python文件操作:文件的打开关闭读取写入...
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文件操作:文件的打开关闭读取写入...相关推荐
- python关闭读写的所有的文件-Python文件操作:文件的打开关闭读取写入
Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...
- python以写模式打开录入_Python的学习(六)—-文件和输入输出处理 | 学步园
Python中的文件和输入输出处理 1. 文件对象的概念 文件对象不仅可以用来访问普通的磁盘文件,还可以访问任何其他类型抽象层面上的文件. 例如实时地"打开一个URL"来读取Web ...
- python追加写模式_python(四)文件的读写追加模式
1.文件的读模式:也是默认的方式, f=open('文件路径\文件名','r',encoding='utf-8'):以读的模式打开一个文件,这里的'r'也可以不写,读模式是默认模式,encoding= ...
- catia打开stp文件无响应_catia打不开stp文件怎么办 catia打不开stp文件解决办法
catia打不开stp文件怎么办?catia是一款十分好用的模具制作软件.而最近有些小伙伴们发现使用catia打开stp文件的时候发现无法编辑出现错误的情况.不是很了解这种情况怎么解决的小伙伴们,赶紧 ...
- python目录及文件操作_python路径及文件操作,10.22,10.27
csv 和ini文件处理 作者: 一个小菜鸡 csv常见格式 nums options arguments 逗号分割值 comma-Separated Values CSV是一个被行 ...
- python中xlrd写操作_Python读写操作Excel模块_xlrd_xlwt_xlutils
Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...
- python读取文件按行分割字符串_python在TXT文件中按照某一字符串取出该字符串所在的行方法...
python在TXT文件中按照某一字符串取出该字符串所在的行方法 主要流程:读取文件数据--将每一行数据分成不同的字符段--在判断 在某个字否段是否含与某个字符.(只是其中一种办法) 代码如下: wi ...
- python遍历目录压缩文件夹然后在发送邮件_python目录操作之python遍历文件夹后将结果存储为xml...
Linux服务器有CentOS.Fedora等,都预先安装了Python,版本从2.4到2.5不等,而Windows类型的服务器也多数安装了Python,因此只要在本机写好一个脚本,上传到对应机器,在 ...
- 解决办法:360压缩解压出现空白文件创建失败,但压缩包文件无损坏显示有十几个文件
问题如下:压缩文件正常有8.5M,15个文件,但360压缩打开只有一个空文件. 解决办法:如果,压缩文件右键→打开方式→Windows资源管理器,就可以打开了.
最新文章
- 【学习参考】Animate.css动画演示
- 【Java】类与对象 - 参数传值
- 在Win7下利用VirtualBox和Vagrant安装Docker
- 深度学习中 batchnorm 层是咋回事?
- 工作流调度系统介绍,常见工作流调度系统对比,azkaban与Oozie对比,Azkaban介绍与特性(来自学习笔记)
- [转]基于ROS平台的移动机器人-4-通过ROS利用键盘控制小车移动
- iOS之UITraitCollection
- sscanf的高级用法
- c语言综合知识,软件设计师教程综合知识集锦之C语言编程风格
- linux 画图 源码,Drawing:一款开源的类似微软画图的 Linux 桌面应用
- 为什么联通走归属地ip_为什么企业争先恐后地进行品牌虚拟IP打造?
- java 内存指针_java内存模型详解
- 数组中其余的排除_[leetcode 剑指offer系列] 面试题04. 二维数组中的查找
- phabricator客户端使用(windows)
- springboot日志输出异常_基于aop进行springboot接口调用日志和埋点日志输出,支持json格式方便elk收集...
- 儿童机器人编程入门优先学习什么?
- linux 运行有道词典,ubuntu安装有道词典的教程详解
- docker启动mysql报错Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use
- c语言 函数调用顺序,C++函数定义和调用过程(超详细)
- SAP ABAP ZBA_R003 查询用户下的角色里的公司