文件读写               2018/11/12
===============================================================================
1.1文件对象
open(name[, mode[, buffering]],encoding) #打开文件返回文件对象
参数:
# 1buffering0无缓冲;大于1缓冲区大小字节;负数默认缓冲区大小;用 flush 或者 close 时才会更新
# 2)字符编码: 默认encoding='UTF-8' ;例如encoding='gbk'读取GBK编码的文件
# 3errorserrors='ignore'忽略错误
                        # 编不规范文件(在文件中夹杂一些非法编码字符)会UnicodeDecodeError

----------------------------------------------------------------
1.2.属性
f.closed      #文件已关闭返回True
f.mode       #文件的I/O模式
f.name       #文件名称
f.newlines  #换行符为None 或其他换行符
f.encoding #文件编码
----------------------------------------------------------------1.3.方法
f.read([size])      #读文件字符串 (缺省:全部;size:字符串长度;末尾\nfile.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_what0文件开始(默认);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.实例
# 实例1f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')
# 实例2filename=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相关推荐

  1. python学习笔记-36 文件读写

    读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...

  2. python学习——IO编程——文件读写

    python--IO编程--文件读写 IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动.Input Stream就是数据从外面(磁盘.网络 ...

  3. Python学习笔记_文件读写,目录遍历类封装

    文件读写和目录遍历类的封装. mylib.py 1 # -*- coding:utf-8 -*- 2 3 __author__ = 'huanghuan' 4 5 import os 6 from o ...

  4. Python学习笔记:文件(File)

    Python学习笔记:文件(File) 打开一个文件用于读写,在Python里十分简单,利用内置open函数,可以用绝对路径,也可以用相对路径. 默认模式是'r',只读模式. 文件句柄f是一个可迭代对 ...

  5. Python字符集编码和文件读写

    Python字符集编码和文件读写 python中默认编码是ASCII,可以通过以下方式设置和获取: import sys print sys.getdefaultencoding() sys.setd ...

  6. python特训营-文件读写

    课程目标 Python内置的文件读写操作 通过OS模块进行文件和文件夹操作 通过OS模块进行路径操作 Python内置的文件读写操作 • open() 打开或者创建一个文件 格式:open('文件路径 ...

  7. python学习记录part10:读写文件

    python学习part10:第十章 文件和异常 教材:<python:从入门到实践> 今天有别的学习任务,相应的 自由学习时间也就少了,所以今天学习内容不多,估计以后也不能保持很快的进度 ...

  8. python 学习笔记 5 -- 文件输入输出

    本文主要介绍python下的文件输入输出操作,python的文件操作简单易用-通过本文相信你可以熟练掌握file和pickle这两种输入输出操作! 1.文件 你可以通过创建一个file类的对象来打开一 ...

  9. Python入门教程之文件读写操作知识

    Python是随着人工智能时代的来临而火爆起来的编程语言,入门简单.功能强大,吸引了人们的广泛学习加入.想要学好Python,一定要从基础学起,然后进阶深入学习,今天千锋小编就给大家分享Python培 ...

最新文章

  1. 佛门的七众弟子指的是哪些呢?
  2. visual studio 阅读 linux-kernel
  3. 前端开发常用的Chrome插件推荐
  4. python的out模式_如何用python中的DataFrame列的模式替换NA值?
  5. 计算机计算能力共享,服务器计算能力计算器
  6. mysql5.7.17的linux安装,linux下mysql5.7.17最新稳定版本安装教程
  7. MANet:盲图像超分辨率中空间变异核估计的互仿射网络(ICCV 2021)
  8. (四)训练运行Deep CycleGAN以进行移动风格迁移
  9. 白话Word2Vec
  10. 接口返回buffer的16进制数据如何转换
  11. 响应式mysql_Spring Data R2DBC响应式操作MySQL
  12. (含代码)基于51单片机电子密码锁设计
  13. unity tier setting
  14. 金融数据分析(十三)投资组合问题
  15. 参加软件测试培训找工作有前景吗
  16. QQ表情里的股市晴雨表
  17. 【论文笔记】《SketchMate: Deep Hashing for Million-Scale Human Sketch Retrieval》
  18. 想买折叠手机的你,了解OLED显示很有必要
  19. python基础-02-input使用
  20. (课程学习笔记)Excel学习

热门文章

  1. jQuery立即执行函数
  2. ucore lab1学习笔记整理
  3. 一次真实的应急响应案例(Windows2008)——暴力破解、留隐藏账户后门与shift粘贴键后门、植入WaKuang程序——事件复现(含靶场环境)
  4. Flutter 插件signature签字使用
  5. 前端 JavaScript 设计模式前奏--面向对象-封装、继承、多态
  6. 计算机专业有身高限制吗,大学哪些专业对身高要求?高中生注意,这些专业差1cm都不能报...
  7. 公网搭建Kubernetes 1.20.9(阿里云+腾讯云)
  8. offbye的Dottext 1.0 Beta 2汉化美化版发布了!欢迎下载
  9. Android入门小案例,制作登陆页面跳转
  10. strcmp的返回值 Linux与Windows下区别 源代码实现区别