python_09 文件处理流程,文件操作方法
文件处理流程
1.打开文件,得到文件句柄并赋值给一个变量
2.通过句柄对文件进行操作
3.关闭文件
f=open('test.txt',encoding='gbk')
data = f.read()
print(data)
f.close()
读取文件:
#r代表只读 w代表只写 a代表只追加
#默认打开文件是只读模式
f=open('test.txt','r',encoding='gbk')
data = f.read()
print(data)
f.close()
print(f.readable())#返回bool文件是否可读
print('第一行',f.readline(),end='')#读每一行
print('第二行',f.readline())
print('第三行',f.readline())
print(f.readlines())
写文件:
文件内容只能是字符串模式
f=open('zzz','w',encoding='utf-8')
f.write('111111111111\n')
f.write('2222222222222222\n')
f.writelines(['333\n','444\n'])
f.close()
追加:
f=open('zzz','a',encoding='utf-8')
f.write('写到文件最后') f.close()
写文件都是从光标处开始写,若不读文件,则光标在第一行顶头
数据本质上都是覆盖,没有改写
#修改文件第一行
f=open('a.txt','r')
data=f.readlines()
print(data)
f.close() d=open('a.txt','w')
d.write(data[0])
d.close()
with关键字:
with open('a.txt','w') as a:
a.write('1111\n2222')
相当于打开文件对文件进行操作后关闭文件
with open('a.txt','r') as a,\
open('xxx','w') as b:
data=a.read()
b.write(data)
以字节方式操作文件
Windows平台中,\r\n为回车
Linux平台中,\n为回车
#'字符串'---------encode编码--------->>>bytes
#bytes---------decode解码--------->>>'字符串'
二进制方式读:
# f=open('a.txt','rb',encoding='utf-8')#b的方式不能执行编码
f=open('a.txt','rb')
data=f.read()
print(data)
#'字符串'---------encode--------->>>bytes
#bytes---------decode--------->>>'字符串'
print(data.decode())
f.close()
二进制方式写:
f=open('zzz','wb')
#f.write('1111\n')#报错
x='1111\n'
y=bytes(x,encoding='utf-8')
f.write(y)
z=x.encode('utf-8')
f.write(z)
f.close()
open()默认参数:
Character Meaning
--------- ---------------------------------------------------------------
'r' open for reading (default)
'w' open for writing, truncating the file first
'x' create a new file and open it for writing
'a' open for writing, appending to the end of the file if it exists
'b' binary mode
't' text mode (default)
'+' open a disk file for updating (reading and writing)
'U' universal newline mode (deprecated)
文件操作的其他方法:
f.closed返回bool值表示文件是否关闭
f.encoding查看使用open打开文件时的编码
f.flush()刷新,将内存中数据保存到硬盘
注意:read(3)代表读取3个字符,其余的文件内光标移动都是以字节为单位如:seek,tell,truncate
f.tell()返回光标当前位置
f=open('a.txt','r',encoding='utf-8',newline='')#newline=''读取文件中真正的换行符号
f.seek()控制光标的移动,seek(a,b)第一个参数表示相对上一次移动的字节,第二个参数为0表示从文件开头开始计算,为1从上一次光标停的位置计算,为2从末尾开始计算,且此时第一个参数需加-号,第二个参数是1,2时需指定文件以b的方式打开
#读取文件最后一行,下面的第一种方法会加大内存,拖慢速度,相当于把整个文件都读取并缓存到内存中
f=open('a.txt','r+',encoding='utf-8')
data=f.readlines()
print(data[-1]) >>>2019/3/27 她做了sb一件事情 ####################
f=open('a.txt','rb')
for i in f:
offs=-10
while True:
f.seek(offs,2)
data=f.readlines()
if len(data)>1:
print('文件的最后一行是:%s'%data[-1].decode('utf-8'))
break
offs*=2 >>>文件的最后一行是:2019/3/27 她做了sb一件事情
f.truncate(10)从开头开始算,将文件只保留从0-10个字节的内容,文件必须以写的方式打开,w和w+除外
#循环文件的推荐方式:
f=open('')
for i in f:
......
python_09 文件处理流程,文件操作方法的更多相关文章
- Yii2 源码分析 入口文件执行流程
Yii2 源码分析 入口文件执行流程 1. 入口文件:web/index.php,第12行.(new yii\web\Application($config)->run()) 入口文件主要做4 ...
- HDFS文件读写流程
一.HDFS HDFS全称是Hadoop Distributed System.HDFS是为以流的方式存取大文件而设计的.适用于几百MB,GB以及TB,并写一次读多次的场合.而对于低延时数据访问.大量 ...
- 【转】漫谈linux文件IO--io流程讲的很清楚
[转]漫谈linux文件IO--io流程讲的很清楚 这篇文章写的比较全面,也浅显易懂,备份下.转载自:http://blog.chinaunix.net/uid-27105712-id-3270102 ...
- Git基本命令 -- 基本工作流程 + 文件相关操作
可以先找一个已经被git管理的项目, 我就使用这个项目吧: https://github.com/solenovex/ID3-Editor 基本工作流程 克隆以后呢, 进入该目录查看一下状态: 然后添 ...
- linux文件系统启动流程、启动脚本
linux文件系统启动流程.启动脚本 下面是一张Linux启动流程图: 在了解启动流程之前,我们应该先知道系统的几个重要脚本和配置文件,他们对应的路径为: 1. /sbin/init 2. /etc/ ...
- Android中measure过程、WRAP_CONTENT详解以及 xml布局文件解析流程浅析
转自:http://www.uml.org.cn/mobiledev/201211221.asp 今天,我着重讲解下如下三个内容: measure过程 WRAP_CONTENT.MATCH_PAREN ...
- Linux文件访问流程及磁盘inode和block总结
Linux文件访问流程 inode是文件的唯一标识,文件名和inode的对应关系存放在上一级目录的block中:inode里有指向文件block的指针和文件的属性,从而通过block获得文件数据. 磁 ...
- Python的网络编程[5] -> BOOTP + TFTP + FTP -> 实现一个简单的文件传输流程
BOOTP-TFTP-FTP 目录 文件传输流程 服务器建立过程 客户端建立过程 1 文件传输流程 / File Transfer Flow 利用BOOTP,TFTP,FTP三种传输协议,建立起客户端 ...
- diy文件系统上创建文件的流程
[0]README 0.1) source code are from orange's implemention of a os , and for complete code , please v ...
随机推荐
- day 17 项目开发常用模块
---恢复内容开始--- time模块 import time print(time.time()) # 时间戳: print(time.strftime("%Y-%m-%d %X" ...
- vue 关闭浏览器
在开发中的一个需求,vue中关闭浏览器, 直接使用window.close()在chrome.fireFox会不起作用 需要改为一下方式 window.open('about:blank','_sel ...
- 神州数码多区域OSPF配置
实验要求:掌握多区域OSPF配置 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip address ...
- Gram格拉姆矩阵在风格迁移中的应用
Gram定义 n维欧式空间中任意k个向量之间两两的内积所组成的矩阵,称为这k个向量的格拉姆矩阵(Gram matrix) 根据定义可以看到,每个Gram矩阵背后都有一组向量,Gram矩阵就是由这一组向 ...
- WEBBASE篇: 第四篇, CSS知识2
CSS知识2 一, 尺寸 与 边框 CSS单位 1,尺寸单位:(1)px 像素 (2)% (3) in 英寸 lin = 2.54cm (4)pt 磅 1pt = 1/72in ppi ...
- Angular4.0引入第三方框架,eg: bootstrap、jquery
最近学习angular4.0,在练习是需要使用jquery和bootstrap.但是查阅了,大多数都是angular2的方法,或者是angular4.0的方法但是不准确.花了一些时间终于捣腾出来了,把 ...
- hello1源码解析
1.选择hello1文件夹并单击“打开项目” 2.展开网页节点,双击index.xhtml文件在编辑器中查看它 index.xhtml文件是facelets应用程序的默认登录页,在典型的facelet ...
- windows openssh server 安装试用
使用Windows的可能会知道win10 的已经包好了openssh 服务,但是对于其他机器win 7 windows 2008 ,就需要其他的方法了 还好powershell 团队开发了支持wind ...
- because there was insufficient free space available after evicting expired cache entries
Tomcat运行的时候哗哗哗的报警告 版本是Tomcat 8.5.15 告警信息关键字如下 because there was insufficient free space available af ...
- Spring Web常见面试问题
一.Web容器初始化过程 先初始化listener,然后是filter,然后是servlet. 二.Spring MVC项目中IOC容器关系 Web容器启动时通知ContextLoaderListen ...