文件操作
# 文件操作
'''
1.文件路径 d:/a.txt
2.编码方式 utf-8 gbk
3.操作方式 只读 只写 追加 读写 写读
'''
# 绝对路径
# f = open('/Users/yunhaoguo/Desktop/主妇.txt', mode='r', encoding='utf-8')
# content = f.read()
# print(content)
# f.close()
# 相对路径
# bytes -> str
f = open('文件操作', mode='r', encoding='utf-8')
content = f.read()
print(content)
f.close()
# bytes只读:rb 不管怎么存的直接读 比如可以用来读图片文件
f = open('文件操作', mode='rb')
content = f.read()
print(content)
c = content.decode('utf-8')
print(c)
f.close()
# 只写 w 没有此文件就创建,如果有此文件就清除再写
f = open('只写测试文件', mode='w', encoding="utf-8")
f.write('只写')
f.close()
# bytes写
# f = open('只写测试文件', mode='wb')
# f.write('写'.encode('utf-8'))
# f.close()
# 追加
f = open('追加文件', mode='a', encoding="utf-8")
f.write('追加的内容')
f.close()
# bytes追加
f = open('只写测试文件', mode='ab')
f.write('写'.encode('utf-8'))
f.close()
# 读写 追加写 写完以后没法再读
f = open('读写', mode='r+', encoding='utf-8')
print(f.read())
f.write('读了以后写')
f.close()
# 写读 写是清除内容后写,读的时候光标移动到了末尾,所以读不出内容,只有把光标调节到开始才能读
# a+ 是追加写读
f = open('写读', mode='w+', encoding='utf-8')
f.write('写读')
f.seek(0)
content = f.read()
print(content)
f.close()
# bytes读写
f = open('读写佰特', mode='r+b')
print(f.read())
f.write('bytes写'.encode('utf-8'))
f.close()
# 删除文件和重命名文件
import os
os.remove('写读')
os.rename('重命名','新名字')
功能详解
# 功能详解
f = open('功能详解', mode='r+', encoding='utf-8')
# seek()中的参数是按照字节数
f.seek(3)
# f.tell()告诉你光标的位置
print(f.tell())
# read()中参数是字符个数
content = f.read(3)
print(content)
f.close()
# 写完以后读最后三个字
f = open('功能详解', mode='a+', encoding='utf-8')
f.write('guodage')
count = f.tell()
f.seek(count - 3)
print(f.read())
f.close()
# readlines() 每一行当做列表的一个元素添加到列表中
# readline() 读一行
# truncate(2) 截取 只要位置0到2的内容
f = open('功能详解', mode='r+', encoding='utf-8')
# 一行行读
for line in f:
print(line)
f.close()
# 以下方法不用close,自动关闭,且可以同时打开多个
with open('功能详解', mode='r+', encoding='utf-8') as f, \
open('功能详解', mode='r+', encoding='utf-8') as f1:
print(f.read())
文件存储注册登录的简单实现
# 注册登录
menu = '''
1.注册
2.登录
'''
print(menu)
option = input("请输入您想进行的操作")
if option == '1':
name = input("请输入用户名")
password = input("请输入密码")
with open("info.txt", mode='w+', encoding='utf-8') as f:
f.write(name + ' ' + password)
print('注册成功')
elif option == '2':
save_name = ''
save_pass = ''
with open("info.txt", mode='r+', encoding='utf-8') as f:
lis = f.read().split(' ')
save_name = lis[0]
save_pass = lis[1]
count = 3
while 1:
name = input("请输入用户名")
password = input("请输入密码")
if name == save_name and password == save_pass:
print("登陆成功!!!")
break
else:
print("没有此用户")
count -= 1
if count == 0:
break
else:
print("没有这个选项")