【Python基础】第十七篇 | Python的文件操作

文件

介绍:计算机的文件,就是存储在某种存储设备上的一段数据
作用:将数据长期保存下来,在需要的时候使用
1.计算机只认识二进制(0 1)
2.文件中存储的数据都是以二进制(0 1)的形式去存储

可以根据 文件中的二进制内容,能否使用记事本软件,将其转换为文字,将

文件分为两类

1.文本文件
能够使用记事本软件打开(能够使用记事本转换为文字)
txt md py html css js json
2.二进制文件
不能使用记事本软件打开的
exe,mp3,mp4,jpg,png
我们操作的基本都是文本文件
文件操作
文件操作的步骤

1.打开文件
2.读或写文件
3.关闭文件

  • 1.打开文件:将文件从磁盘(硬盘)中读取到内存中

语法:

open(file,mode='r',encoding=None)

参数 file:是要打开的文件,类型是字符串,文件的路径可以是相对路径,也可以
是绝对路劲(从根目录开始书写的路径),建议使用相对路径(相对当前代码文件所在的路径,./ …/)
参数 mode :默认参数(缺省参数),表示的是打开文件的文件
r:read 只读打开
w:write 只写打开
a:append 追加打开,在文件的末尾写入内容
参数 encoding:编码方式,(文字和二进制如果进行转换的)
gbk:将一个汉子转换为2个字节二进制
utf-8:常用,将一个汉子转换为3个字节的二进制
返回值:返回的是文件对象

  • 2.读或者写文件

写文件
向文件中写入指定的内容
前提:文件的打开方式是w或者a

   文件对象.write('写入文件的内容')
   #返回值:写入文件的字符数,一般不关注

注意:
1.文件不存在,会直接创建文件
2.文件存在,会覆盖原文件(将原文件中的内容清空)
读文件:
将文件中的内容读取出来
前提:文件的打开方式需要是r

  文件对象.read(n)
  # 参数n表示读取多少自己,一般不写,表示读取全部内容
  # 返回值:读取到的文件内容,类型 :字符串
  • 3.关闭文件

关闭文件:将文件占用的资源进行清理,同时会保存文件,文件关闭之后,这个文件对象就不能使用了

  文件对象.close()

实例

# 1.打开文件
f=open('a.txt','w',encoding='utf-8')
# 2.写文件
f.write('好好学习')
# 3.关闭文件
f.close()

使用with open 打开文件

with open() 打开文件的好处:不用自己去书写关闭文件的代码,会自动进行关闭

with  open(file,mode,encoding='utf-8') as 变量:
    # 在缩进中去读取或者写入文件
# 缩进中的代码执行结束,出缩进之后,文件会自动关闭
'''
with open('a.txt','a',encoding='utf-8') as f:
    f.write('good good study')
# a 方式打开文件,文件不存在会创建文件,文件存在,在文件的末尾写入内容

按行读取文件内容
按行读取文件:一次读取一行内容

文件对象.readline()
with open('b.txt',encoding='utf-8') as f:
    buf = f.readline()
    print(buf)
print('*'*30)

with open('b.txt',encoding='utf-8') as f:
    for i in f:
        print(i,end='')
print('*'*30)

# read() 和 readline() 读到文件末尾,返回一个空字符串,长度为0

with open('b.txt',encoding='utf-8') as f:
    while True:
        buf = f.readline()
        if len(buf)==0:
            break
        else:
            print(buf,end='')
print('*'*30)
# 在容器中,容器为空,即容器中的数据的个数为0,表示False,其它情况为True
with open('b.txt',encoding='utf-8') as f:
    while True:
        buf = f.readline()
        if buf: # len(buf)!=0
            print(buf)
        else:
            break
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值