python文件操作及练习题

内容概要

  • 读写模式之a模式
  • 文件操作的相关方法
  • 文件操作模式
  • 文件操作代码练习题
  • 文件内光标的移动及文件修改

内容详细

读写模式之a模式

# a模式  只追加模式
# 路径不存在:自动创建
with open(r'a.txt', 'a', encoding='utf8') as f:
    pass
# 路径存在:不会清空文件 在文件末尾添加内容
with open(r'a.txt', 'a', encoding='utf8') as f:
    f.write('\n今天天气不错')
    
"""小总结
	我们学习的r w a读写模式都只能操作文本文件
"""

文件操作方法

# 文件操作方法
# 1.读系列
with open(r'a.txt', 'r', encoding='utf8') as f:
    # print(f.read())  # 一次性读取文件内所有的内容
    # print(f.readline())  # 每次只读取文件的一行内容
    # print(f.readlines())  # 读取文件所有的内容 组织成列表 每个元素是文件的每行内容
    # print(f.readable())  # 判断当前文件是否具备读的能力
    
# 2.鞋系列
with open(r'a.txt', 'w', encoding='utf8') as f:
    # f.write('克服一切困难')  # 往文件内谢日文本内容
    # f.write(123)  # 写入的内容必须是字符串类型
    # f.writelines(['jason','kevin', 'tony'])  # 可以将列表中多个字符串元素全部写入
    # print(f.writable())  # True
    # print(f.readable())  # False
    f.flush()  # 直接将内存内文件数据刷到硬盘 相当于ctrl+s

文件优化操作

with open(r'a.txt', 'r', encoding='utf8') as f:
    # print(f.read())  # 一次性读取文件内所有的内容
    # print(f.read())  # 一次性读取文件内所有的内容
    # print(f.read())  # 一次性读取文件内所有的内容
    """
    1.一次性读完之后 光标停留在了文件末尾 无法再次读取内容
    2.该方法在读取大文件的时候 可能会造成内存溢出的情况
    	解决上述问题的策略就是逐行读取文件内容
    """
    # for line in f:  # 文件变量名f支持for循环 相当于一行行读取文件内容
    # 	line
    '''以后设计多行文件内容的额情况一般都是采用for循环读取'''

文件操作模式

t	文本模式
	1.默认的模式
    	r w a >>>rt wt at
	2.该模式所有操作都是以字符串基本单位(文本)
    3.该模式必须要制定encoding参数
    4.该模式只能操作文本文件
b	二进制模式
	1.该模式可以操作任意类型的文件
    2.该模式所有操作都是以bytes类型(二进制)基本单位
    3.该模式不需要制定encoding参数
    	rb wb ab  # b不能省略

练习题

# 1.简易版注册登录功能
# 2.注册功能
# 获取用户输入信息
username = input('请输入您要创建的用户名>>>:').strip()
password = input('请输入您要创建的密码>>>:').strip()
# 将用户名和密码转为一个字符串
data = '%s|%s' %(username, password)
# 打开a.txt 只写模式
with open(r'a.txt', 'w', encoding = 'utf8') as f:
    # 将用户名和密码写入文件
    f.write(data)
    # 反馈用户创建信息成功
print('用户:%s创建成功' %(username))


# 登录功能 
# 3.输入功能,获取用户名和密码
username = input('请输入用户名:').strip()
password = input('请输入密码:').strip()
# 打开a.txt文件,只读功能
with open(r'a.txt', 'r', encoding = 'utf8') as f1:
    # 由于文件只有一行内容,所以全部读完
    date = f1.read()   # 'jason'|'123'
    # 将读取到的数据切分
    res = date.split('|')  # ['jason', '123']
#     利用索引取值,一一比对内容如果输入正确
if username == res[0] and password == res[1]:
    print('用户:%s登录成功!'% username)
#     如果输入错误
else:
    print('用户名或密码错误!')
上一篇:聊斋文本统计


下一篇:文件操作模式