python 学习汇总1:文件读写 tcy
文件读写 2018/11/12 =============================================================================== 1.1文件对象 open(name[, mode[, buffering]],encoding) #打开文件返回文件对象 参数: # 1)buffering:0无缓冲;大于1缓冲区大小字节;负数默认缓冲区大小;用 flush 或者 close 时才会更新 # 2)字符编码: 默认encoding='UTF-8' ;例如encoding='gbk'读取GBK编码的文件 # 3)errors:errors='ignore'忽略错误 # 编不规范文件(在文件中夹杂一些非法编码字符)会UnicodeDecodeError ---------------------------------------------------------------- 1.2.属性 f.closed #文件已关闭返回True f.mode #文件的I/O模式 f.name #文件名称 f.newlines #换行符为None 或其他换行符 f.encoding #文件编码 ----------------------------------------------------------------1.3.方法 f.read([size]) #读文件字符串 (缺省:全部;size:字符串长度;末尾\n) file.readline([n]) #读一行信息 (缺省:读一行;n:读n个字符;尾加\n;) f.readlines() #读出所有行 (尾\n)['Welcome \n', 'There\n', 'ha\n'] f.write(string) # 将str写文件 f.write('This is a test\n'))#15 f.writelines(list) # 将list中字符串连续写入文件没有换行 f.seek(offset,from_what) #移动文件指针 # 偏移量Offset:指定引用位置移动 offset # 起始位置from_what:0文件开始(默认);1指针位置,2末尾 f.tell() #当前文件位置int f.close() #关闭文件返回True f.fileno() #获得文件描述符数字 f.flush() #清除输出缓冲区刷新输出缓存 f.isatty() #文件是交互终端=True f.truncate([size]) #截取文件大小为size f.fileno() #返回一个整数文件描述符 f.next #返回下一行或StopIteration --------------------------------------------------------------- 1.4.实例 # 实例1: f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore') # 实例2: filename=r"C:\somefile.txt" f = open(filename)while True:str_text = f.read(); #f.readline();f.readlines():#运用迭代否则占用太多的内存 if not str_text:f.closebreak def process(string):print( "Processing: ", string)process(str_text)=============================================================================== 2.上下文管理# with应用 with open(filename) as f:pass # 等价于: try:f = open('/path/to/file', 'r')print(f.read()) finally:if f:f.close()=============================================================================== 3.迭代# 1)文件迭代器 f = open(filename) for line in f:process(line) f.close()# 2)使用fileinput实现懒惰行迭代 import fileinputdef process(string):print( "Processing: ", string)for line in fileinput.input(filename):print(line.strip()) # 把末尾的'\n'删掉 process(line)===============================================================================4.综合实例:#计算文件行数 #方法1:计算文件行数 def fileline_n(filename):import os#os.path.exists(filename) #文件及文件夹存在 if (not os.path.isfile(filename)):return 'not exit'+filenamen=0 with open(filename,'r') as file:for line in file: n+=1 return nfilename=r'c:\file_tcy1.txt' print(fileline_n(filename))# ****************************************************************** #方法2:计算文件行数 def fileline_n1(filename):import os#os.path.exists(filename) #文件及文件夹存在 if (not os.path.isfile(filename)):return 'not exit'+filenamen=0 with open(filename,'r') as file:while True:buffer = file.read(1024 * 8192)if not buffer:break n+= buffer.count('\n')return n =================================================================================
附录: |
文件读写模式类型 |
r |
文件读(默认) |
r+ |
文件读写 |
rU或Ua |
文件读(提供通用换行符支持) |
rb |
文件读(二进制) |
rb+ |
文件读写(二进制) |
w |
文件写(存在清空,无创建) |
w+ |
文件读写(存在清空,无创建) |
wb |
文件写(二进制w) |
wb+ |
文件读写(二进制+w) |
a |
文件读追加(从eof开始追加到文件末尾;无创建) |
a+ |
读写模式 (参见 a ) 文件指针移到文件尾 |
ab |
二进制追加模式(参见 a ) |
ab+ |
二进制读写模式打开 (参见 a+ ) |
二进制文件读写 2018/6/15=============================================================================== 1.说明: # 1)Windows ASCII文件行尾自动添加行结束符 # 2)文本文件没用b模式只允许从文件头计算相对位置 # 3)读写复杂二进制数据格式最好使用该struct 模块。 # 4)规则数据(如整数或浮点数的同类列表)使用该array模块。=============================================================================== 2.1.一般方式:#二进制文件读写f = open('/tmp/workfile', 'rb+')f.write(b'0123456789abcdef')#16 f.seek(5) # Go to the 6th byte in the file f.read(1) #b'5' f.seek(=3, 2) # Go to the 3rd byte before the end #13 f.read(1) #b'd' f.readline() 2.2.struct 方式:#二进制文件读写 # 获取一个包含二进制数据(通常是数字)的字符串并将其转换为Python对象; 反之亦然。#读取两个2字节整数和一个大端格式的4字节整数: import struct with open(filename, "rb") as f:s = f.read(8) #b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制字节 x, y, z = struct.unpack(">hhl", s)说明:字符串中'>'强制大端数据; 字母'h'读取一个“短整数”(2个字节)'l'从字符串中读取一个长整数”(4个字节)。===============================================================================
python 学习汇总1:文件读写 tcy相关推荐
- python学习笔记-36 文件读写
读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...
- python学习——IO编程——文件读写
python--IO编程--文件读写 IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动.Input Stream就是数据从外面(磁盘.网络 ...
- Python学习笔记_文件读写,目录遍历类封装
文件读写和目录遍历类的封装. mylib.py 1 # -*- coding:utf-8 -*- 2 3 __author__ = 'huanghuan' 4 5 import os 6 from o ...
- Python学习笔记:文件(File)
Python学习笔记:文件(File) 打开一个文件用于读写,在Python里十分简单,利用内置open函数,可以用绝对路径,也可以用相对路径. 默认模式是'r',只读模式. 文件句柄f是一个可迭代对 ...
- Python字符集编码和文件读写
Python字符集编码和文件读写 python中默认编码是ASCII,可以通过以下方式设置和获取: import sys print sys.getdefaultencoding() sys.setd ...
- python特训营-文件读写
课程目标 Python内置的文件读写操作 通过OS模块进行文件和文件夹操作 通过OS模块进行路径操作 Python内置的文件读写操作 • open() 打开或者创建一个文件 格式:open('文件路径 ...
- python学习记录part10:读写文件
python学习part10:第十章 文件和异常 教材:<python:从入门到实践> 今天有别的学习任务,相应的 自由学习时间也就少了,所以今天学习内容不多,估计以后也不能保持很快的进度 ...
- python 学习笔记 5 -- 文件输入输出
本文主要介绍python下的文件输入输出操作,python的文件操作简单易用-通过本文相信你可以熟练掌握file和pickle这两种输入输出操作! 1.文件 你可以通过创建一个file类的对象来打开一 ...
- Python入门教程之文件读写操作知识
Python是随着人工智能时代的来临而火爆起来的编程语言,入门简单.功能强大,吸引了人们的广泛学习加入.想要学好Python,一定要从基础学起,然后进阶深入学习,今天千锋小编就给大家分享Python培 ...
最新文章
- 佛门的七众弟子指的是哪些呢?
- visual studio 阅读 linux-kernel
- 前端开发常用的Chrome插件推荐
- python的out模式_如何用python中的DataFrame列的模式替换NA值?
- 计算机计算能力共享,服务器计算能力计算器
- mysql5.7.17的linux安装,linux下mysql5.7.17最新稳定版本安装教程
- MANet:盲图像超分辨率中空间变异核估计的互仿射网络(ICCV 2021)
- (四)训练运行Deep CycleGAN以进行移动风格迁移
- 白话Word2Vec
- 接口返回buffer的16进制数据如何转换
- 响应式mysql_Spring Data R2DBC响应式操作MySQL
- (含代码)基于51单片机电子密码锁设计
- unity tier setting
- 金融数据分析(十三)投资组合问题
- 参加软件测试培训找工作有前景吗
- QQ表情里的股市晴雨表
- 【论文笔记】《SketchMate: Deep Hashing for Million-Scale Human Sketch Retrieval》
- 想买折叠手机的你,了解OLED显示很有必要
- python基础-02-input使用
- (课程学习笔记)Excel学习
热门文章
- jQuery立即执行函数
- ucore lab1学习笔记整理
- 一次真实的应急响应案例(Windows2008)——暴力破解、留隐藏账户后门与shift粘贴键后门、植入WaKuang程序——事件复现(含靶场环境)
- Flutter 插件signature签字使用
- 前端 JavaScript 设计模式前奏--面向对象-封装、继承、多态
- 计算机专业有身高限制吗,大学哪些专业对身高要求?高中生注意,这些专业差1cm都不能报...
- 公网搭建Kubernetes 1.20.9(阿里云+腾讯云)
- offbye的Dottext 1.0 Beta 2汉化美化版发布了!欢迎下载
- Android入门小案例,制作登陆页面跳转
- strcmp的返回值 Linux与Windows下区别 源代码实现区别