14 Python - 文件操作

文件操作

一.文件操作

1.计算机数据的存储

计算机的存储系统分为 运行内存硬盘 两种:

运行内存: 用来保存程序运行过程中产生的数据,程序运行结束后自动销毁

硬盘: 硬盘是用来保存文件的,保存在文件中的数据就是保存在硬盘中的.除非手动删除,否则数据会一只存在

2.数据持久化

数据持久化就是讲数据以各种形式保存到因硬盘中(保存到本地文件中)

3.文件操作

文件操作基本步骤: 打开文件 -> 操作文件(读、写) -> 关闭文件

  1. 打开文件
open(file,mode = 'r', encoding=None) - 以指定的模式打开指定文件并且返回一个文件对象
说明:
a.file - 文件路径,字符串类型
		 文件路径:绝对路径:文件/文件夹的全路径(一般不写绝对路径)
        		 相对路径:只写文件绝对路径的一部分,另外一部分用特殊符号代替
                		./ - 表示当前目录,可以省略
                    	../ - 表示当前目录的上层目录
b.mode - 打开方式,字符串类型
		 第一组:控制操作类型
           r - 以只读的方式打开文件(默认值)
           W - 以只写的方式打开文件(打开前会先清空原文件中的内容)
           a - 以只写的方式打开文件
         第二组:控制数据类型(文本-str/二进制数据-bytes)
           t - 操作的数据是文本数据(默认值)
           b - 操作的数据是二进制数据
          注意:每一组只选一个,两组值进行组合使用
c.encoding - 文本编码方式;直接写'utf-8'
			 注意:如果打开方式中带b,不能设置encoding
# open('files/text.txt', 'rb', encoding='utf-8')    #   ValueError: binary mode doesn't take an encoding argument

总结: 文本文件打开的时候可以是t也可以是b;二进制文件只能是b打开(图片文件、音视频文件等)
二.文件的读写操作

1.打开文件

方法一:

文件对象 = open(文件路径,文件打开方式,encoding = 文本编码方式)
操作文件对象
文件对象.close()

f = open('files/text.txt', encoding='utf-8')
print(f.read())
f.close()

方法二:

with open (文件路径,文件打开方式,encoding = 文本编码方式) as 文件对象:
   	操作文件对象

with open('files/text.txt',encoding='utf-8') as f:
	print(f.read())

2.文件的读操作

语法:
文件对象.read()   -  从文件读写位置开始,读到文件的结尾(默认情况下读写位置在文件开头)
文件对象.readline() - 读文本文件的一行内容(从当前读写位置读到一行结束)
文件对象.readlines() - 一行一行的读,读完为止。返回的是一个列表,列表中的元素是每一行的内容

小练习:一行一行的读文件,读完为止

def read_file(file):
    with open(file, 'r', encoding='utf-8') as f:
        while True:
            c = f.readline()
            if not c:
                break
            print(c)

3.写操作

语法:
	文件对象.write(内容)
with open('files/text.txt', 'a', encoding='utf-8') as f:
   f.write('面对疾风吧!')
三,数据持久化

1.数据持久化的用途

①将数据保存在文件中

②需要数据的时候从文件中去读数据

③当数据发生改变的时候,对保存数据的文件进行更新

​ **注意:**如果以读的方式打开一个不存在的文件,程序会报错!如果是以写的方式打开一个不存在的文件,不会报错并且会自动新建这个文件

**练习:**写一个程序统计这个程序启动的次数

with open('files/count', encoding='utf-8') as f:
    count = int(f.read())
    count += 1
    print(count)
with open('files/count', 'w', encoding='utf-8') as f:
    f.write(str(count))
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值