12_Python基础_Python文件读写

Python文件读写
    
    文件是数据的载体,程序可以从文件中读取数据,也可以把数据写入到文件中。
    文件包含文本文件与二进制文件两种
        文本文件:内部以字符形式来存储数据,字符是有编码的(GBK、UTF-8……)
        二进制文件没有编码的概念,在系统中这种文件是比较常见的,如Windows中的exe,图片,word,Excel,ppt,mp3等
    一、文件打开
        在使用文件之前先要打开文件,通过open()函数实现,open()函数数的语法如下
open(file, mode='r',encoding=None,errors=None)
    open函数的参数比较多,比较常用的为上面四个参数
        file参数:表示要打开的文件,可以是字符串或整数。如果是字符串,则表示文件名(可以是当前目录的相对路径或绝对路径);如果是整数,则表示一个已经打开的文件
        mode参数:设置文件的打开模式,用字符串表示,它的各种字符表示的含义如下
            t:以文本文件模式打开文件
            b:以二进制文件模式打开文件
            r:以只读模式打开文件
            w:以只写模式打开文件,不能读内容。如果文件不存在则创建文件,如果存在则覆盖文件内容
            x:以独占创建模式打开文件,如果文件不存在则创建并以写入模式打开,如果文件已存在,则引发FileExistsError异常
            a:以追加模式打开文件,不能读内容。如果文件不存在则创建文件,如果存在则在文件末尾追加内容
            +:以更新(读写)模式打开文件,必须与r,w或a组合使用,才能设置文件为读写模式
            上面的这些字符可以进行组合,以表示不同类型的文件打开模式
                rt或r        以只读模式打开文本文件
                wt或w        以只写模式打开文本文件
                xt或x        以独占创建模式打开文本文件
                at或a        以追加模式打开文本文件
                rb            以二进行文件模式,类似于rt
                wb            以二进制文件模式,类似于wt
                xb            以二进制文件模式,类似于xt
                ab            以二进制文件模式,类似于at
                r+            以读写模式打开文本文件,如果文件不存在,则抛出异常
                w+            以读写模式打开文本文件,如果文件不存在则创建文件
                a+            以追加文本文件模式打开文本文件,如果文件不存在,则创建文件
                rb+            二进制文件模式,类似于r+
                wb+            二进制文件模式,类似于w+
                ab+            二进制文件模式,类似于a+
            encoding参数:用来指定打开文件时的文件编码,默认是UTF-8编码,主要用于打开文本文件
            errors参数:用来指定在文本文件发生编码错误时如何处理。推荐errors参数的取值为'ignore'表示在遇到编码错误时忽略错误,程序会继续执行,不会退出
            
            
            二、文件关闭
                    在打开文件后,如果不再使用这个文件,应该要把它关闭,这时会用来close()方法
                    在finally代码块中关闭文件
                        对于文件的操作往往会抛出异常,为了保证对文件操作无论是正常结束还是异常结束,都可以关闭文件,我们应该把close()方法的调用放在异常处理finally代码块中。
                        
                    在with as 代码块中关闭文件
                        在Python中提供了一个with as代码块,可以用来自动释放资源,从而代替我们写finally代码块。
# coding=utf-8
f_name = 'test.txt'
with open(f_name) as f:
    content = f.read()
    print(content)
                    with as 提供了一个代码块,在as后面声明一个资源变量,在with as 代码块结束之后自动释放资源。
            三、读写文本文件
                    读写文本文件的相关方法如下:
                        1、read(size = -1):从文件中读取字符串,size参数限定读取的字符数,size = -1时指对读取的字符数没有限制
                        2、readline(size = -1):读取到换行符或文件尾时返回单行字符串。如果已经到文件尾,则返回一个空字符串,size限制读取字符数,size = -1表示没有限制
                        3、readlines():读取文件数据到一个字符串列表中,第一行数据都是列表的一个元素
                        4、write(s):把字符串s写入到文件中,并返回写入的字符数
                        5、writelines(lines):向文件中写入一个字符串列表,不添加行分割符,因而通常为每一行末尾都提供分割符
                        6、flush():刷新写缓冲区,在文件没有关闭的情况下把数据写入文件中。
            四、文件的复制
                
            五、二进制文件的读写
                    二进制文件的读写单位是字节,不需要考虑编码问题。二进制文件的主要读写方法如下:
                        read(size = -1):从文件中读取字节,size限制了读取字节数,如果size = -1,则读取全部字节
                        readline(size = -1):从文件中读取并返回一行,size限制读取的行数,如果size = -1则没有限制
                        readlines():读取文件数据到一个字节列表中,每一行数据都 是列表的一个元素
                        write(b):写入b字节,并返回写入的字节数
                        writelines(lines):向文件中写入一个字节列表,不添加行分割符,因此通常为每一行末尾都提供分割符
                        flush():刷新写缓冲区,在文件没有关闭的情况下把数据写入文件中。
                        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值