栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python第十节IO流的操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python第十节IO流的操作

一、文本文件和二进制文件

1、文本文件

        文本文件存储的是普通“字符文本”,默认为unicode字符集(两个字节表示一个字符,65536),可以使用记事本程序打开。但是,像word软件编辑的文档不是文本文件。

2、二进制文件

        二进制文件把数据内容用“字节”进行存储,无法用记事本打开,必须使用专用的软件解码。常见的有:mp3视频文件,MP3音频文件,jpg图片,doc文档等等。

二、文件操作相关模块概述

IO模块,文件流的输入和输出操作

OS模块,基本操作系统功能,包括文件操作

glob模块,查找符合特定规则的文件路径名

fnmatch模块,使用模式来匹配文件路径名

fileinput模块,处理多个输入文件

filecmp模块,用于文件的比较

csv模块,用于csv文件处理

pickle和cpickle,用于序列化和反序列化

xml报,用于xml数据处理。

bz2、gzip、zipfile、zlib、tarfile用于处理压缩和解压(分别对应不同的算法)

三、创建文件对象open()

语法 open(文件名[,打开方式])

f = open(r"d:b.txt",'a')

r 读模式

w写模式,如果文件不存在则创建,存在则重新写内容。

a追加模式,文件不存在则创建,存在就在文件末尾追加内容。

b二进制模式(可与其他模式组合使用)

+读、写模式(可与其他模式组合使用)

文本文件对象和二进制对象的创建:

        如果我们没有增加模式“b”,则默认创建的是文本文件对象,处理的基本单元是“字符”。

如果是二进制模式“b”,则创建的是二进制文件对象,处理的基本单元是“字节”。

四、文本文件的写入

基本文件的写入操作

文本文件的写入一般就是三个步骤:

1、创建文件对象

2、写入数据

3、关闭文件对象

f = open("a.txt",'a')

s = "尚学堂n 百战程序员n"

f.write()

f.close()

五、常用编码介绍

ASCII———ISO8859-1

GB2312   UTF-8

7位表示1个字符,最高位

GB2312和UTF-8不兼容

六、写操作

write()/writelines()

write(a):把字符串a写入到文件中

writelines(a):把字符串列表写入文件中,不添加换行符

f = open(r"d:bb.txt,"w",encoding="utf-8")

s = ["高琪n","高老三n","高老四n"]

f.writelines(s)

f.close()

七、close()关闭文件流

        由于文件底层是由操作系统控制,所以我们打开的对象必须显式调用close()方法关闭文件对象。当调用close()方法时,首先会把缓冲区数据写入文件(也可以直接调用flush()方法),再关闭文件,释放文件对象。

        为了确保打开的文件对象正常关闭,一般结合异常机制的finally或者with关键字实现,无论何种情况都能关闭打开的文件对象。

try:

        f = open(r"my01.txt:,"a")

        str="gaoqi"

        f.write(str)

finally:

        f.close()

flush把数据从缓冲区写入硬盘

八、with语句(上下文管理器)

with关键字(上下文管理器)可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,并且可以在代码块执行完毕后自动还原进入该代码块是的现场。

s = ["高琪n","高老三n","高老五n"]

with open(r"d:bb.txt",'w') as f:

        f.writelines(s)

九、文件的读取

1、read([size])

        从文件中读取size个字符,并作为结果返回。如果没有size参数,则读取整个文件。读取到文件末尾,会返回空字符串。

2、readline()

读取一行内容作为结果返回。独缺到文件末尾,会返回空字符串。

3、readlines()

文本文件中,每一行作为一个字符串存入列表中,返回该列表。

读取一个文件前4个字符

with open(r"bb","r",encoding = "ufg-8") as f:

        print(f.read(4))

文件较小,一次将文件内容读入到程序中

with open(r"d:bb.txt","r")

        print(f.read())

按行读取一个文件

with open(r"bb","r")  as f:

        while True:

                fragment = f.readline()

                if not fragment:

                break

九、二进制文件的读取和写入

f = open(r"d:a.txt",'wb') 可写的、重写模式的二进制文件对象

f = open(r"d:a.txt",'ab') 可写的、追加模式的二进制对象

f = open(r"d:a.txt","rb") 可读的二进制文件对象

十、文件对象常用方法和属性总结

flush()把缓冲区的内容写入文件,但不关闭文件

seek(offset[,whence]) 把文件指针移动到新的位置,offset表示相对于whence的位置

offset:

        off为正往结束方向移动,为负往开始方向移动

        whence不同的值代表不同含义

0:从文件头开始计算(默认值)

1:从当前位置开始计算

2:从文件尾开始计算

tell()返回文件指针的当前位置

truncate([size])不论指针在什么位置,只留下指针前size个字节的内容,其余全部删除。

十、使用pickle序列化

使用语法:

pickle.dump(obj,file)  obj就是要被序列化的对象,file指的是存储的文件

pickle.load(file) 从file读取数据,反序列化成对象

十一、OS和OS.path模块

os.system可以调用windows系统的记事本程序

十二、OS模块文件和目录操作

remove(path)删除指定的文件

rename(src,dest)重命名文件或目录

stat(path) 返回文件的所有属性

listdir(path)返回path目录下的文件和目录列表

mkdir(path)创建目录

makedirs(path1/path2/path3/....)创建多级目录

remdir(path)删除目录

removedirs(path1/path2..)删除多级目录

getcwd()返回当前工作目录

chdir(path)把path设为当前工作

walk()遍历目录树

sep当前操作系统所使用的路径分隔符

十三、Os.path模块

os.path模块提供了目录相关(路径判断、路径切分、路径链接、文件夹遍历)

isabs(path)判断path是否绝对路径

isdir(path)判断path是否为目录

isfile(path)判断path是否为文件

exists(path)判断指定路径的文件是否存在

getsize(filename)返回文件的大小

abspath(path)返回绝对路径

dirname(p)返回目录的路径

getatime(filename)返回文件的大小

abspath(path)返回绝对路径

dirname(p)返回目录的路径

getatime(filename)返回文件的最后访问时间

getmtime(filename)返回文件的最后修改时间

walk(top,func,arg)递归方式遍历目录

join(path,*paths)连接多个path

split(path0对路径进行分割,以列表形式返回

splitext(path)从路径中分割文件的扩展名

十四、walk()递归遍历所有文件和目录

os.walk()方法:

返回一个3个元素的元组,(dirpath,dirnames,filenames),

        dirpath:要列出指定目录的路径

        dirnames:目录下的所有文件夹

        filenames:目录下的所有文件

十五、shutil模块(拷贝和压缩)

shutil模块时python标准库中提供的,只要用来做文件和文件夹的拷贝、移动、删除等;还可以做文件和文件夹的压缩、解压缩操作。

        os模块提供了对目录或文件的一般操作。shutil模块作为补充,提供了移动、复制、压缩、解压等操作,这些os模块都没有提供。

十六、递归算法

      定义递归头。什么时候不调用自身方法。如果没有头,将陷入死循环,也就是递归的结束条件。

递归体。什么时候需要调用自身方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/331330.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号