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 ...
随机推荐
- 带通滤波 matlab
巴特沃斯:1.带阻滤波器设计带阻滤波器指标:阻带上边界频率:5Kz:阻带下边界频率:7Kz:通带上边界频率:2Kz:通带下边界频率:9Kz:通带最大衰减:1dB:阻带最小衰减:20dB:设计程序如下: ...
- 【leetcode】415. Add Strings
problem 415. Add Strings solution: class Solution { public: string addStrings(string num1, string nu ...
- sql语言 含有包含关系的查询 (含mysql 和sql sever)
一.sql中查询包含关系的查询 sql语句中包含关系可以使用 in 和exist,但有些时候仅仅用这两个是不够的,还有表示方法是 not exist(b expect a )可以表示a包含b. 二. ...
- java 从一个工程action 跳转到另外一个工程action
实现功能:java 从一个工程action 跳转到另外一个工程action 在我们实际编程的过程中,大家一定遇到过这种情况,那就是在一个工程中,需要使用到另外一个工程的实体Bean和方法.那么遇到这种 ...
- 《Linux内核原理与分析》第四次作业
跟踪分析Linux内核的启动过程 使用实验楼的虚拟机打开shell 使用 gdb 跟踪调试内核 使用 qemu qemu -kernel linux-3.18.6 /arch/x86/boot/baI ...
- Java面试题 corejava(二)
65.JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try 块中可以抛出异常吗?[基础] 答:Java 通过面向对象的方法进行 ...
- java File处理
/**************************************************************************************工具类********** ...
- Python循环语句之break与continue的用法
摘自原文章: http://www.jb51.net/article/73383.htm Python break 语句Python break语句,就像在C语言中,打破了最小封闭for或while循 ...
- CSS之a标签锚点
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python之路——9
王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594 学习内容 1.文件处理 1.打开文件 open(‘路径’,‘打开方式’) 打开方式 r w a r+ w+ ...