七. Python基础(7)--文件的读写
七. Python基础(7)--文件的读写
1 ● 文件读取的知识补充
|
f = open('file', encoding = 'utf-8') content1 = f.read() content2 = f.readlines() content3 =f.readline()
# 注意:现在只有content1有内容, 因为f.read()执行完以后, 文件的指针已经位于文件尾. |
2 ● 如果多次读同一个文本对象
|
f = open('file', encoding = 'utf-8') content1 = f.read() f.seek(0) #光标返回止文件的开头 content2 = f.readlines() f.seek(0) content3 =f.readline() |
3 ● Python函数体的要求
|
# 函数体不能为空, 至少要有一个pass |
4 ● writelines()函数
|
seq = ["菜鸟教程 1\n", "菜鸟教程 2"] f.writelines( seq ) |
|
菜鸟教程 1 菜鸟教程 2 |
5 ● Python文件处理应注意的问题
|
① Python的读写模式有12种, 一般只用r, w和a三种, 其它的尽量不要使用. ② 读写视频/音频/图片等二进制文件时, 才注意采用包含'b'的读写模式(也不要encoding) ③ 尽量只用r, w, a, rb, wb, ab的读写模式, 尽量不要对一个文件又读又写. |
6 ● 'r+' 读写模式的特点
|
# 打开文件的时候:不清空文件 # 当用户执行读操作以后,写的内容都变成追写 # 当用户未执行读操作,写默认从开始覆盖 |
7 ● 修改文件的方法: 复制→修改→删除→改名
|
f = open('file', encoding = 'utf-8') # with open f2 = open('file_back', 'w', encoding = 'utf-8') for line in f: line_list = line.split('|') line_list[0] += '_somebody' user_str = '|'.join(line_list) f2.write(user_str) f.close() #一定要关闭文件! f2.close()#一定要关闭文件! import os os.remove("file") os.rename("file_bak", "file") |
补充知识:
1 ● 文件操作作中的tell()和seek()函数
|
obj = open("test_7.txt", encoding="utf-8", mode = "r+") print(obj.tell()) obj_text = obj.read(1) # 单位是字符 print(obj.tell()) #返回文件当前指针的位置,单位是字节 print(obj_text) obj.seek(6) # 定位文件指针的位置, 指针单位是字节, 第如果不填第二个参数, 从文件开头定位指针 obj.write("6") print(obj.tell()) obj.close() |
|
# seek(offset, whence=SEEK_SET)有2个参数 # offset:偏移量(代表需要移动、偏移的字节数) # from:方向 # 0:表示文件开头(默认) # 1:表示当前位置 # 2:表示文件结尾(一般offset是负数) 例如: seek(5,1) #表示从文件当前位置开始移动指针,向右移动5个字节; 如果是"-5"表示向左移动5个字节. # SEEK_SET 将读写位置指向文件头后再增加offset个位移量。 # (Python3中)在文本文件中,对于没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常。 |
|
如果一个文件"test_7.txt"原本的内容是: 北京市Beijing 执行上述代码后, 打印: 0 3 北 7
"test_7.txt"的内容变为:
北京6Beijing 同时会提示:
|
|
如果是mode = "w+"模式: 打印结果是: 0 0
7 "test_7.txt"的内容变为:
|
2 ● flush()函数
|
flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区. 一般的文件流操作都包含缓冲机制,write方法并不直接将数据写入文件,而是先写入内存中特定的缓冲区。 ※ |
|
f= open('flush_test.txt',mode='w',encoding='utf-8') i = 0 while i < 3: data = input('请输入:') f.write(data) f.flush() i += 1
obj.close() |
|
结果:
|
3 ● py2中的xreadlines()函数
|
在Python2中, 文件对象的函数xreadlines()函数返回的是一个生成器, 在Python3中它已不再被使用. 在Python3中, 可以直接使用for line in 文件对象:...来生成一个生成器. |
4 ● 浮点数
|
小数包括: 有限小数, 无限循环小数, 无限不循环小数 |
|
浮点数包括: 有限小数, 无限循环小数(因为Python中采用科学计数法, 所以有"浮点数"的称呼) |
5 ● 向下取整的原则
|
print(int(1.5)) # 1, 不是四舍五入的原则 |
6 ● 复数
|
复数由实数部分和虚数部分构成,real + imag(J/j后缀) 实数部分和虚数部分都是浮点数 |
|
>>> a = 1+2j >>> b= 3+0j >>> print(a+b) (4+2j) |
七. Python基础(7)--文件的读写的更多相关文章
- Python基础 | 数据文件的读写
目录 txt txt的读入 txt的写出 csv xls\xlsx 在线网页数据 常用的工具 爬虫的步骤 pdf pdfrw PyPDF2 提取文档信息 word文档 其他统计软件生成文件 本文总结使 ...
- python基础之文件读写
python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...
- 第二篇:python基础之文件读写
python基础之文件读写 python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使 ...
- python基础篇(文件操作)
Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...
- python入门基础:文件的读写
文件的读写操作运用广泛,无论是何种语言都会涉及到文件的输入输出. 下面简单的总结一下文件的读写: 1:open()函数 f = open('workfile', 'w') 函数 open()返回文件的 ...
- Python基础笔记2-ruamel.yaml读写yaml文件
上一篇笔记记录了Python中的pyyaml库对yaml文件进行读写,但了解到ruamel.yaml也能对yaml文件进行读写,于是想尝试一下它的用法. 一,注意 这里首先要更正一下网上大部分博客的说 ...
- Python基础_文件的的处理及异常处理
今天主要讲讲文件读写及异常处理. 一.文件操作 1.1 文件的创建及读 打开文件 open 函数 open(file,[option]) file 是要打开的文件 option是可选择的参数文件的打 ...
- python中 对文件的读写操作 以及如何边写入 边保存flush()
转自:https://blog.csdn.net/t8116189520/article/details/78854708 首先 python中打开文件大致常用的几类如下: 1.写入文件write # ...
- python基础之文件处理
读和写文件 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直 ...
随机推荐
- C# 遍历文件夹筛选目标文件
有近400G的数据,首先需要写程序把目标文件标准化名称(相当耗时,各种情形,间接说明在数据采集过程中标准化操作的重要性,这样会给后续处理带来很多不必要的麻烦和消耗) 网上找了个方法还不错,还有一种递归 ...
- Spring Boot入门第五天:使用JSP
原文链接 1.在pom.xml文件中添加依赖: <!-- Servlet依赖 --> <dependency> <groupId>javax.servlet< ...
- Hibernate多对多单向关联和双向关联 --Hibernate框架
Hibernate关联关系中相对比较特殊的就是多对多关联,多对多关联与一对一关联和一对多关联不同,多对多关联需要另外一张映射表用于保存多对多映射信息.本例介绍多对多单向关联和双向关联.单向关联 :指具 ...
- apicloud 按返回键
api.addEventListener({ name: 'keyback' }, function(ret, err) { //调取index.html暴露的方法 api.execScript({ ...
- optimizer(代码分析)
torch.optim是里面是和优化算法相关的类.比如使用SGD算法用 optimizer = optim.SGD(net.parameters(),lr=1e-3) 这个地方要注意的是传入的第一个参 ...
- Redis之下载安装及基本使用
redis window系统的redis是微软团队根据官方的linux版本高仿的 官方原版: https://redis.io/ 中文官网:http://www.redis.cn 1.1 redis下 ...
- 『TensorFlow』分布式训练_其一_逻辑梳理
1,PS-worker架构 将模型维护和训练计算解耦合,将模型训练分为两个作业(job): 模型相关作业,模型参数存储.分发.汇总.更新,有由PS执行 训练相关作业,包含推理计算.梯度计算(正向/反向 ...
- react中直接调用子组件的方法(非props方式)
我们都知道在 react中,若要在父组件调用子组件的方法,通常我们会采用在父组件定义一个方法,作为props转给子组件,然后执行该方法,可以获取到子组件传回的参数以得到我们的目的. 显而易见,这个执行 ...
- Java异常及错误
java提供了两种异常机制,可以分为运行时异常(RuntimeException)与检查式异常(checked Exception). 检查式异常:java编译器对于这种异常需要我们对其用try... ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(6)-Active Dataguard篇
1. 检查主备库的状态 on primary column DATABASE_ROLE format a20 column OPEN_MODE format a15 column PROTECTION ...

, 有的编辑器(如pycharm)显示为:


