Python中文件的读取操作

本文详细介绍了Python中文件的读写模式,包括r、w、a三种基本模式,以及文本和二进制模式的使用。通过实例展示了如何使用with语句打开和操作文件,并强调了文件操作的安全性和最佳实践。此外,还提出了两个编程任务,分别是创建简易的文件拷贝工具和利用文件实现用户登录注册功能,鼓励读者将所学应用于实际问题解决。
摘要由CSDN通过智能技术生成

文件的读写模式

r : 只读模式(默认)

        使用该模式打开的文件只能读取内容不能做其它操作

        r模式下当文件路径不存在时直接报错;当文件路径存在会打开文件等待读取文件内容。

w :只写模式

        使用该模式打开的文件只能写内容不能做其它操作

        此模式下当文件路径存在则会先清空该文件内容 之后等待填写新内容;当文件路径不存在则会自动创建该文件。

a :只追加模式

        使用该模式打开的文件默认在末尾追加新的内容不能做其它操作

        a模式下当文件路径不存在则会自动创建该文件;若路径存在a模式不会清空该文件内容 只在文件末尾等待添加新内容。

with open(r'1.txt',选择r、w、a模式,encoding='utf-8') as f:

拓展知识:

1.with语法支持一次性打开多个文件

with open(r'a.txt','r',encoding = 'utf-8') as a1,open(r'b.txt','r',encoding = 'utf-8') as a2:
# 可以相同的套路打开多个文件

2.补全python语法,不做任何操作

pass        推荐

...             不推荐

if 1 == 1:
    pass
if 1 == 1:
    ...
'''两种方式结果相同但更推荐pass'''

3.单词小技巧

通常情况下在英语单词结尾加上able表示具备该单词描述的能力

readable        具备读取内容的能力

writable          具备填写内容的能力

文件的操作模式 

1.t:文本模式(文本操作的默认模式)

r        rt

w        wt

a        at

\bullet 在文本模式下只能对文本文件进行操作;

\bullet 文本模式必须指定encoding参数;

\bullet 读写都是以字符串为单位;

with open(r'a.txt','r',encoding='utf-8') as f:

2.b:二进制模式

rb

wb

ab

\bullet 在二进制模式下能够操作所有类型对文件;

\bullet 二进制模式不需要指定encoding参数;

\bullet二进制读写文件都是以bytes为单位;

with open(r'a.jbg','rb') as f:
    f.read()

 文件的诸多操作方法

read() :读取文件内所有内容读取完后光标停留在文件末尾,再次读取时则为空
readline() :将文件内容一行一行的读取(用来读取大文件)
readlines() : 一行一行的读取所有的内容并组织成列表返回
readable()  :判断当前文件是否可读
writable()  :判断当前文件是否可写
write() : 填写文件添加内容
writelines() :支持填写容器类型(内部可以存放多个数据值的数据类型)多个数据值
flush() :将内存中的文件数据存储到硬盘(主动按ctrl+s)


 ###今日作业###

1.编写简易版本的拷贝工具
 自己输入想要拷贝的数据路径 自己输入拷贝到哪个地方的目标路径
 任何类型数据皆可拷贝
 ps:个别电脑C盘文件由于权限问题可能无法拷贝 换其他盘尝试即可
        
2.利用文件充当数据库编写用户登录、注册功能
 文件名称:userinfo.txt
 基础要求:
  用户注册功能>>>:文件内添加用户数据(用户名、密码等)
       用户登录功能>>>:读取文件内用户数据做校验
      ps:上述功能只需要实现一次就算过关(单用户) 文件内始终就一个用户信息
  拔高要求:
       用户可以连续注册
     用户可以多账号切换登录(多用户)  文件内有多个用户信息
      ps:思考多用户数据情况下如何组织文件内数据结构较为简单
    提示:本质其实就是昨天作业的第二道题 只不过数据库由数据类型变成文件

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值