Python3之文件读写操作详解
文件操作的步骤: 
打开文件 -> 操作文件 -> 关闭文件 
切记:最后要关闭文件(否则可能会有意想不到的结果) 
打开文件
文件句柄 = open(‘文件路径’, ‘模式’) 
指定文件编码
文件句柄= open(‘文件路径’,’模式’,encoding=’utf-8’)  
为了防止忘记关闭文件,可以使用上下文管理器来打开文件
with open(‘文件路径’,’模式’) as 文件句柄: 
打开文件的模式有:
r,只读模式(默认)。 
w,只写模式。【不可读;不存在则创建;存在则删除内容;】 
a,追加模式。【可读;   不存在则创建;存在则只追加内容;】 
r+,可读写文件。【可读;可写;可追加】 
w+,写读 
“U”表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
rU 
r+U 
“b”表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
rb 
wb 
ab
关闭文件
文件句柄.close() 
操作文件: 
detach
占位
fileno(返回文件描述符,用于底层操作系统的 I/O 操作) 
fid = 文件句柄.fileno() 
print(fid) 
flush(刷新缓冲区,将缓冲区中的数据立刻写入文件)
文件句柄.flush() 
isatty(判断文件是否连接到一个终端设备,返回布尔值)
文件句柄.isatty() 
read(从文件中读取指定的字符数,默认读取全部)
str = 文件句柄.read()      #读取整个文件 
str1 = 文件句柄.read(10)   #读取文件前10个字符 
readable(判断文件是否可读,返回布尔值)
文件句柄.readable() 
readline(每次最多读取一行数据,每行的最后包含换行符’\n’)
print(文件句柄.readline())   #读取第一行数据 
print(文件句柄.readline(3))  #读取第二行前3个字符 
print(文件句柄.readline())   #读取第二行剩余字符 
print(文件句柄.readline())   #读取第三行 
seek(移动文件读取的指针,如果文件中包含中文,移动指针必须是3的倍数,不然会报错,因为一个中文字符等于3个字节)
文件句柄.seek(6) 
seekable(判断文件指针是否可用,返回布尔值)
文件句柄.seekable() 
tell(获取指针位置)
文件句柄.tell() 
truncate(截断,把指针后面的内容删除,并写入文件,要在可写模式下操作)
f = open(‘text.txt’,’r+’,encoding=’utf-8’) 
f.seek(9)   #把指针移动到第9个字节后面(即第3个中文后面) 
f.truncate()  #把第3个中文后面的字符删除,并写入文件 
f.close() 
writable(判断文件是否可写,返回布尔值)
文件句柄.writable() 
write(把字符串写入文件,并返回字符数)
文件句柄.write(‘字符串’)
Python3之文件读写操作详解的更多相关文章
- Linux 文件/目录操作详解
		目录 Linux 文件/目录操作详解 初识Linux 一.文件/目录显示命令 ls 二.目录创建命令 mkdir 三.目录转移命令 cd 四.当前目录显示命令 pwd 五.文件处理命令 rmdir 六 ... 
- Android的file文件操作详解
		Android的file文件操作详解 android的文件操作要有权限: 判断SD卡是否插入 Environment.getExternalStorageState().equals( android ... 
- C++文件操作详解(ifstream、ofstream、fstream)
		C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstre ... 
- c++ 文件操作详解
		C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstre ... 
- 【学习笔记】C++文件操作详解(ifstream、ofstream、fstream)
		C++ 通过以下几个类支持文件的输入输出: ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstre ... 
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
		转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ... 
- Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解
		大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ... 
- [Android新手区] SQLite 操作详解--SQL语法
		该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法 :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ... 
- [转载]Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
		大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ... 
随机推荐
- 通过模板创建一个ABP项目
			⒈下载 进入ABP模板页面,选择模板后下载 ⒉运行 1.初始化数据库 修改xxxx.Migrator.xxxx.Web.Host appsettings.json中的连接字符串 2.还原数据库 在Nu ... 
- HDU1285(拓扑排序裸题
			..被多组测试坑了一波 #include<iostream> #include<vector> #include<queue> using namespace st ... 
- 第9章:LeetCode--算法:HASH表
			哈希表(Hash table,也叫散列表),关键值K和内容的映射表,通过映射函数实现,hashtable(key,value) 进行查询的时候,就是使用哈希函数将关键码key转换为对应的数组下标,并定 ... 
- selenium登录豆瓣网
			登录流程: 实例化一个driver,然后driver.get()发送请求 最重要的:切换iframe子框架,因为豆瓣的网页中的登录那部分是一个ifrme,必须切换才能寻找到对应元素 利用seleniu ... 
- [转载]Python 魔法方法详解
			据说,Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切. 他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个, ... 
- Jmeter之TCP取样器
			1.在线程组中添加“TCP取样器” 2.填写数据 以下截图是必须配置的 TCPClient classname: 填写TCP报文格式(有三类),默认前缀:org.apache.jmeter.prot ... 
- 怎样理解NodeList的动态集合与静态集合
			NodeList 有两种, 一种是动态集合, 一种是静态集合, 所谓动态集合, 主要是 Node.prototype.childNodes; 返回的子节点集合对文档的节点增删改会即时改变; 而静态集合 ... 
- url请求
			--[[local g = require 'library.global'--__ml_ss = mlc.prefix.ml_psession..tostring(os.time());local ... 
- vs 2017创建类时的默认模板修改
			思路:找到vs 2017安装目录---->找到模板文件---->修改 一般安装目录: C:\Program Files (x86)\Microsoft Visual Studio\2017 ... 
- 基于C#实现与JY61姿态角度传感器通信
			产品介绍:  此六轴模块采用高精度的陀螺加速度计 MPU6050,通过处理器读取 MPU6050 的测量数据 然后通过串口输出,免去了用户自己去开发 MPU6050 复杂的 IIC 协议,同时精心的 ... 
