Python_文件操作

目录

一、文件编码

二、什么是文件

三、文件操作

1、打开文件 open()打开函数

2、读取文件

3、写入文件 f.write() 使用w模式

4、文件追加 类比文件写入,只是将‘w’-->‘a’

5、文件操作综合案例

一、文件编码

Thinking: 计算机只能识别 0和1,那么文本文件 如何被计算机识别存储在硬盘中?
利用编码技术(密码本)将内容翻译成0和1存入
编码技术:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容
计算机内有许多可用编码:
* UTF-8
* GBK
* Big5  等
不同的编码将内容翻译成二进制也是不同的
编码有许多,要正确使用编码才能进行正确的读写操作
UTF-8是目前比较通用的编码格式
总结以下两个问题
1、什么是编码?
编码就是一种集合规则,记录了内容和二进制之间进行相互转换的逻辑;编码有许多种,我们最常用的是UTF-8编码
2、为什么需要使用编码?
计算机只认识0和1,所以需要将内容翻译成0和1才能保存在计算机中。同时也需要编码将计算机保存的0和1,反向翻译回可以识别的内容。

二、什么是文件

文件是指一个 可以独立操作的程序,可以是文本、图片、声音、视频等,不同的文件可以用不同程序打开。操作系统以文件为单位管理磁盘中的数据。

三、文件操作

文件操作主要包括 打开、关闭、读、写等操作

1、打开文件 open()打开函数

在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件夹
语法:open(name,mode,encoding)
  • name: 是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
  • mode: 设置打开文件的模式(访问模式):只读、写入、追加等
  • encoding:编码格式(推荐使用UTF-8)
示例代码:
注意:此时的‘f’是‘open’函数的文件对象,对象是Python中一种特殊的数据类型,拥有属性和方法,可以使用对象.属性 或 对象.方法对其进行访问。后续会详细记录面向对象笔记。
mode 常用的三种基础访问模式

2、读取文件

1.读操作相关方法
 1)read() 方法:
文件对象.read(num)
num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num就表示读取文件中所有的数据
 2)readlines() 方法:
readline可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表其中每一行的数据一个元素。
 3)readline() 方法:一次读取一行内容
 4)for循环读取 文件行
 5)close() 关闭文件对象
关闭对文件的占用。如果不调用close(),同时程序没有停止运行,那么这个文件将一直被Python占用
 6)with open 语法:
with open(name,mode,encoding)as f:
    f.readlines()
通过在with open的语句块中对文件进行操作,可以在操作完成后自动关闭close文件,避免忘记使用close()方法
操作汇总:
代码演示:
# 打开文件
f = open("D:\Test\Python_test.txt","r",encoding="UTF-8")
print(type(f))
# 读取文件 - read()
print(f"read读取10个字节结果是:{f.read(10)}")
print(f"read读取全部字节结果是:{f.read()}") # 连续调用read会从上一个read的结尾处开始
# 读取文件 - readlines()
lines = f.readlines() # 读取文件的全部行 封装到列表中
print(f"lines的对象类型是:{type(lines)}")
print(f"lines对象内容是:{lines}") # 文件读取就想有个小指针记录读取的位置
# 读取文件 - readline()
line1 = f.readline()
line2 = f.readline()
line3 = f.readline()
print(f"第一行数据是:{line1}")
print(f"第二行数据是:{line2}")
print(f"第三行数据是:{line3}")
# for循环读取文件行
for line in f:
    print(f"每一行数据:{line}")
# 文件的关闭 close()
time.sleep(30)
f.close()
# with open语法操作文件
with open("D:\Test\Python_test.txt","r",encoding="UTF-8") as f:
    for line in f:
        print(line)

3、写入文件 f.write() 使用w模式

注意:
  • 直接调用write,内容并未真正写入文件,而是会积攒在程序内存中,称之为缓冲区
  • 当调用flush的时候,才会真正将内容写入文件
  • 这样做避免频繁操作硬盘导致效率下降
close()方法内置了flush() with open as f 包括了close()
w --如果文件不存在 会直接创建并写入内容;
# 打开一个并不存在的文件 --创建
with open('D:/Test/write.txt',"w",encoding='UTF-8') as f:
    f.write("hello puuoo") # close()方法内置了flush()
如果文件存在则会清空原来的内容再写入 

4、文件追加 类比文件写入,只是将‘w’-->‘a’

注意:
a模式,文件不存在会创建文件
a模式,文件存在会在最后追加写入文件

5、文件操作综合案例

完成文件备份案例
有一份账单文件,记录了消费收入
需求:


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值