(二十三)Python 3 文件操作
文件处理流程
- 打开文件,得到文件句柄并赋值给一个变量
- 通过句柄对文件进行操作
- 关闭文件
打开文件的模式有三种:
- 只读模式(默认)
- 只写模式(不可读,不存在则创建,存在则覆盖)
- 追加模式(可读,不存在则创建,存在则只追加内容)
"+"表示可同时读写某个文件:
1. r+可读写文件(可读,可写,可追加)
2. w+写读
3. a+追加 "U"表示在读取时,可以将\r \n \r\n自动转换成\n(与r或者r+模式同时使用)
因为Windows系统的换行符为\r\n,Linux系统的换行符为\n,加上U则能自动把\r\n转换成\n
1. rU
2. r+U "b"表示处理二进制文件
1.rb
2.wb
3.ab
文件操作基本用法
基本用法:open()
file_object = open(file_name, access_mode = ‘r’, buffering = -1) open函数有很多的参数,常用的是file_name,mode和encoding
file_name:打开的文件名,若非当前路径,需指出具体路径
access_mode文件打开模式
buffering的可取值有0,1,>1三个,0代表buffer关闭(只适用于二进制模式),1代表line buffer(只适用于文本模式),>1表示初始化的buffer大小;
encoding表示的是返回的数据采用何种编码,一般采用utf8或者gbk;
#打开文件open()
f = open('test.txt','r+')
#或者with open() 这种方法操作完成后,会自动关闭不需要close()
with open('test.txt','r') as f:
f.read() #关闭文件
f = open('test.txt','r+',encoding='utf-8')
ret = f.read()
print(ret)
f.close() #读取文件内容(可指定每次读取字字符)
f = open('test.txt','r+',encoding='utf-8')
ret = f.read(8)
print(ret) #读取数据(可指定读取字符数),存为list显示
f = open('test.txt','r+',encoding='utf-8')
ret = f.readlines()
print(ret)
f.close() #读取一行数据
f = open('test.txt','r+',encoding='utf-8')
ret = f.readline()
print(ret)
f.close() #写入文件write()参数是字符串
f = open('test.txt','a+',encoding='utf-8')
f.write("abc")
ret = f.read()
print(ret)
f.close() #写入文件,writelines()参数是序列,比如列表,它会迭代帮你写入文件
f = open('test.txt','a+',encoding='utf-8')
f.writelines(["aa","bb","cc"])
ret = f.read()
print(ret)
f.close() #判断文件是否是统一tty设备
f = open('test.txt','r+',encoding='utf-8')
ret = f.isatty()
print(ret) #False
f.close() #判断是否可读(不可读则报错" No such file or directory: ")
f = open('test.txt','r+',encoding='utf-8')
ret = f.readable()
print(ret) #True
f.close() #指定文件中指针的位置
f = open('test.txt','r+',encoding='utf-8')
ret = f.read(8) #先读取8个字符
print(ret)
f.seek(0) #然后把指针移动到文件开头处
ret = f.read(8) #在重新读取
print(ret)
f.close() #获取指针位置
f = open('test.txt','r+',encoding='utf-8')
ret = f.read(8) #先读取8个字符
print("pointer position:%s"%f.tell()) #查看当前指针位置
print(ret)
f.seek(0) #重置指定到启始位
print("pointer position:%s"%f.tell()) #在查看指针位置
f.close() #截断文件数据,仅保留指定之前数据(指定字节数)
f = open('test.txt','r+',encoding='utf-8')
f.truncate(8) #文件只保留前8个字节数据,文件后面数据的全部删除
ret = f.read()
print(ret)
f.close() #文件描述符
f.fileno() #刷新文件内部缓冲区
f.flush()
(二十三)Python 3 文件操作的更多相关文章
- 孤荷凌寒自学python第三十三天python的文件操作初识
孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...
- python学习 文件操作
一.python打开文件 #=====================python 文件打开方式 open()===================== # open(fileName,type) t ...
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- python中文件操作的六种模式及对文件某一行进行修改的方法
一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...
- python的文件操作及简单的用例
一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...
- Python :open文件操作,配合read()使用!
python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...
- 二十三. Python基础(23)--经典类和新式类
二十三. Python基础(23)--经典类和新式类 ●知识框架 ●接口类&抽象类的实现 # 接口类&抽象类的实现 #①抛出异常法 class Parent(object): ...
- python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码
python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...
- Python 常见文件操作的函数示例(转)
转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...
随机推荐
- 浅谈线段树 (例题:[USACO08FEB]酒店Hotel)By cellur925
今天我们说说线段树. 我个人还是非常欣赏这种数据结构的.(逃)因为它足够优美,有递归结构,有左子树和右子树,还有二分的思想. emm这个文章打算自用,就不写那些基本的操作了... 1° 简单的懒标记( ...
- 洛谷 P3312 [SDOI2014]数表
式子化出来是$\sum_{T=1}^m{\lfloor}\frac{n}{T}{\rfloor}{\lfloor}\frac{m}{T}{\rfloor}\sum_{k|T}\mu(\frac{T}{ ...
- Linux 命令与学习
2014-10-10 ps -ef|grep *** 可以查找包含***名称的进程 netstat -ntlp 查看端口占用 kill -9 pid 强制杀死进程 ...
- Super Mario 树状数组离线 || 线段树
Super Mario Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- Git之提交项目到远程github
1.在分支dev下,默认本地工作区有项目project 2. git add project [添加项目到暂存区] 3. git commit project -m "提交项目" ...
- 【转】Android中实现IPC的几种方式详细分析及比较
1.使用Bundle ----> 用于android四大组件间的进程间通信android的四大组件都可使用Bundle传递数据 所以如果要实现四大组件间的进程间通信 完全可以使用Bundl ...
- Java单例模式的6种写法
在Java中,单例有很多种写法,面试时,手写代码环节,除了写算法题,有时候也会让手写单例模式,这里记录一下单例的几种写法和优缺点. 初级写法 懒汉式 饿汉式 双锁检验 内部类 枚举式 1.初级写法 p ...
- 系统设计摘录CAP
系统架构设计理论与原则 这里主要介绍几种常见的架构设计理论和原则,常见于大中型互联系统架构设计. (一).CAP理论 1.什么是CAP 所谓CAP,即一致性(Consistency).可用性(Avai ...
- xcopy递归拷贝
递归拷贝 ::xcopy SOURCE_DIR DES_DIR\ /s SOURCE_DIR后面不需要加反斜杠
- 【HEVC简介】CTU、CU、PU、TU结构
参考文献:见<High Efficiency Video Coding (HEVC)>Block Structures and Parallelism Features in HEVC章 ...