python学习--文件操作

1、文件的打开:

open()函数

open(file,mode='r',buffering=-1,encoding=None,errrors=None,newline=None,closefd=True,opener=None)

file参数:(1)字符串:指文件路径   (2)整数:文件描述符,一个已经打开的文件或者其他流

mode参数:

 这些模式可以组合:

文本文件:rt\wt\xt\at (t可以省略,t是默认的),r+/w+/a+/x+

二进制文件:rb\wb\xb\ab,rb+\wb+\xb+\ab+

注意:r+\w+\a+的区别,r+打开文件时如果文件不存在则抛出异常,文件存在则清除文件内容写入;w+打开文件时如果文件不存在则创建文件,文件存在则清除文件内容写入;a+类似w+打开文件时如果文件不存在则创建文件,文件存在则在文件末尾追加。

buffering参数:(1)buffering=-1系统自动设置缓冲区  (2)buffering=0,关闭缓冲区 (3)buffering>0设置缓冲区

encoding参数:打开文件的编码集

errors参数:编码方式错误时的处理方式

newline参数:换行模式

closefd参数:file参数值为整数时这个参数和opener就有用了

opener参数:

f=open('test.txt','w+')  #最开始没有test.txt这个文件,运行程序后生成test.txt文件并写入world
f.write('world')

f=open('test.txt','r+')  #‘word’被‘Hello’覆盖,这里r+和w+样。。。
f.write('Hello')

f=open('test.txt','a') #尾部追加一个空格
f.write(' ')

f=open('test.txt','a+') #尾部追加一个World,现在变成:Hello World
f.write('World')

fname=r'E:\navy_lu\python\seleniumproject\testscript\test.txt'  #r''代表原始字符串,这与正则的区别 和联系
f=open(fname,'w+') #文件内容变成WorldWorld
f.write('WorldWorld')

2、文件的关闭:

close()函数

fname='textfile.txt'
try:
    f=open(fname,'r+')    #不要用w+,w+会清空文件
except OSError as e:
    print('打开文件失败')
else:
    try:
        content=f.read()
        print(content)
    except OSError as e:
        print('读取文件失败')
    finally:
        print("释放文件资源")
        f.close()

#############使用with ...as ...代码块
with open(fname,'r+') as f:
    try:
        content=f.read()
        print(content)
    except OSError as e:
        print('读取文件失败')




运行结果:

hello
释放文件资源

hello

3、文本文件读写

文本文件读写的单位是字符,而且字符是有编码的,读写方法如下:

read(size=1),从文件中读取字符串 ,size表示读取的字符串的大小,size=-1代表没有限制

readline(size=-1),读取单行字符串 ,size表示读取的字符串的大小,size=-1代表没有限制

readlines(hint=-1)读取多行字符串,hint表示行数,hint=-1表示不限制行数

write(s),将字符串s写入文件,返回写入的字符数

writelines(lines),向文件中写入一个列表,不添加分隔符,每一行末尾提供分隔符

flush()刷新缓冲区,会把缓冲区中的内容写入文件

fname='textfile.txt'
with open(fname,'r',encoding='utf-8') as f:  #读写文件指定字符集很重要
    lines=f.readlines()
    print(lines)
    
    copy_f_name='copy.txt'
    with open(copy_f_name,'w',encoding='utf-8') as co:
        co.writelines(lines)
        print('复制文件成功')

运行结果:

['hello大家好']
复制文件成功
#copy.txt文件成功复制了textfile.txt文件中的内容

4、二进制文件读写

二进制文件读写的单位是字节,不需要考虑编码的问题,二进制文件读写的方法和文本文件相同:

read(size=1),从文件中读取字节 ,size表示读取的字节的大小,size=-1代表没有限制

readline(size=-1),读取并返回一行 ,size表示读取的字节的大小,size=-1代表没有限制

readlines(hint=-1)读取文件数据到一个列表,hint表示行数,hint=-1表示不限制行数

write(b),将字节b写入文件,返回写入的字节数

writelines(lines),向文件中写入一个列表,不添加分隔符,每一行末尾提供分隔符

flush()刷新缓冲区,会把缓冲区中的内容写入文件

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值