用户登录
题目
运行程序,提示用户登录或注册
选择注册,要求输入用户名和密码,返回注册提示信息
选择登录,要求输入用户名和密码,判断是否登录成功
分析
根据输入:1为注册,2为登录,其他为不合法输入
注册:记录数据存储格式用户名|密码
,一个用户和密码占用一行,数据末尾换行
登录:读取每一行数据,通过|
分割用户名和密码 与输入用户名和密码判等
代码实现
# 用户登录 with 语句版
flag = input('请选择注册(1)还是登录(2):')
success = False
# 注册
if flag == '1':
user_name = input('请输入注册的用户名:')
user_pwd = input('请输入注册的密码:')
# 打开文件 存入数据
with open('./data.txt', 'a+', encoding='utf-8') as file:
file.write(user_name + '|' + user_pwd + '\n')
# 登录
elif flag == '2':
user_name = input('请输入登录的用户名:')
user_pwd = input('请输入登录的密码:')
# 打开文件 读取数据
with open('data.txt', 'r', encoding='utf-8') as file:
lines = file.readlines()
for line in lines:
line = line.strip()
infos = line.split('|')
register_name = infos[0]
register_pwd = infos[1]
if register_name == user_name and register_pwd == user_pwd:
success = True
break
# 不合法输入
else:
print('不合法输入')
if flag == '2':
if success:
print('登录成功')
else:
print('登录不成功')
注册功能
运行前
运行后
登录功能
登录成功
登录不成功
文本文件复制
题目
实现拷贝文本文件
分析
打开 源文件 和 目标文件
读取源文件数据,写入目标文件
关闭 源文件 和 目标文件
代码实现
# 文本文件复制
scr_file = open('user.txt', 'r', encoding='utf-8')
lines = scr_file.read()
print(lines)
target_file = open('user_bak.txt', 'w', encoding='utf-8')
target_file.write(lines)
scr_file.close()
target_file.close()
文本文件复制功能
运行前
运行后
任意文件复制
题目
无区分文件格式,实现文件复制
分析
所有文件都是二进制文件
代码实现
# 任意文件复制
with open('./Snow.jpg', 'rb') as scr_file:
lines = scr_file.read()
with open('./Snow_bak.jpg', 'wb') as target_file:
target_file.write(lines)
任意文件复制功能
运行前
运行后
os操作
books 文件夹的目录示意图
代码
import os
# 获取目录列表 无法获取文件
# ['cat.bmp', 'food', 'IT', 'readme.txt']
# dirs = os.listdir('./books')
# print(dirs)
# ['breakfast', 'dinner', 'lunch']
# dirs = os.listdir('./books/food')
# print(dirs)
# NotADirectoryError: [WinError 267] 目录名称无效。: './books/readme.txt'
# dirs = os.listdir('./books/readme.txt')
# print(dirs)
# 文件重命名 文件夹不能用
# os.rename('./user_bak.txt', './user1.txt')
# os.rename('./user1.txt', './user_bak.txt')
# PermissionError: [WinError 5] 拒绝访问。: './books' -> './hhhh'
# os.rename('./books', './hhhh')
# 删除文件 不可删除目录
# os.remove('./user_bak.txt')
# 创建文件
# os.mkdir('./data')
# PermissionError: [WinError 5] 拒绝访问。: './data'
# os.remove('./data')
# 获取当前目录
# E:\pythonProjects\test
# print(os.getcwd())
# 改变目录
# E:\pythonProjects
# os.chdir('../')
# print(os.getcwd())
# 删除目录 创建/删除目录需要逐级挨个创建/删除 无法跨级创建/删除目录
# os.mkdir('./data')
# file_path = r'E:\pythonProjects\test\data\bak'
# os.mkdir(file_path)
# dirs = os.listdir(r'E:\pythonProjects\test\data\bak')
# print(dirs)
# os.rmdir(r'E:\pythonProjects\test\data\bak')
# os.rmdir(r'E:\pythonProjects\test\data')
# 判断是否为目录
# print(os.path.isdir(file_path))
# 判断是否为文件
# print(os.path.isfile(file_path))
# 获取文件扩展名
# file_path = r'E:\pythonProjects\test\books\readme.txt'
# dir, extension = os.path.splitext(file_path)
# print(dir)
# print(extension)
遍历books下面的文件以及目录
题目
遍历 books 下面的文件以及目录
books 目录设置如下
books 目录层级如图
代码实现
# 遍历books下面的文件以及目录
"""
输出 books\food\breakfast\bread.txt
目录
0
books = ['cat.bmp', 'food', 'IT', 'readme.txt']
1
food = ['breakfast', 'dinner', 'lunch']
IT = ['AI', 'coder', 'PM']
2 in food
breakfast = ['bread.txt', 'milk.txt']
dinner = ['fork.txt', 'noodles.txt']
lunch = ['potato.txt', 'rice.txt']
2 in IT
AI = ['deep_learning.txt']
coder = ['python.txt']
PM = ['xmind.txt']
"""
import os
# ['cat.bmp', 'food', 'IT', 'readme.txt']
books_dirs = os.listdir('./books')
# print(books_dirs)
for fir_dir in books_dirs:
fir_path = './books/' + fir_dir
# print(fir_path)
sec_dirs = os.listdir(fir_path)
# print(sec_dirs)
for sec_dir in sec_dirs:
sec_path = './books/' + fir_dir + '/' + sec_dir
# print(sec_path)
thrd_dirs = os.listdir(sec_path)
# print(thrd_dirs)
for thrd_dir in thrd_dirs:
thrd_path = './books/' + fir_dir + '/' + sec_dir + '/' + thrd_dir
print(thrd_path)
# 遍历books下面的文件以及目录 os.path.join 版
"""
输出 books\food\breakfast\bread.txt
目录
0
books = ['cat.bmp', 'food', 'IT', 'readme.txt']
1
food = ['breakfast', 'dinner', 'lunch']
IT = ['AI', 'coder', 'PM']
2 in food
breakfast = ['bread.txt', 'milk.txt']
dinner = ['fork.txt', 'noodles.txt']
lunch = ['potato.txt', 'rice.txt']
2 in IT
AI = ['deep_learning.txt']
coder = ['python.txt']
PM = ['xmind.txt']
"""
import os
# ['cat.bmp', 'food', 'IT', 'readme.txt']
books_dirs = os.listdir('./books')
# print(books_dirs)
for fir_dir in books_dirs:
fir_path = os.path.join('./books/', fir_dir)
# print(fir_path)
sec_dirs = os.listdir(fir_path)
# print(sec_dirs)
for sec_dir in sec_dirs:
sec_path = os.path.join('./books/', fir_dir, sec_dir)
# print(sec_path)
thrd_dirs = os.listdir(sec_path)
# print(thrd_dirs)
for thrd_dir in thrd_dirs:
thrd_path = os.path.join('./books/', fir_dir, sec_dir, thrd_dir)
print(thrd_path)