import os import shutil # 创建“单极”目录(目录已经存在,则抛出异常) os.mkdir('demo') os.mkdir('D:/demo') # 创建“多级”目录(所有目录都存在,抛出异常) os.makedirs('D:/demo/aa/bb') # 删除空目录(非空和目录不存在都抛出异常) os.rmdir('D:/demo') # 递归删除空目录,在成功删除末尾一级目录后,会“向上”尝试把父级目录也删除 os.removedirs('D:/demo/aa/bb') # 判断路径是否存在(文件/目录都算) res=os.path.exists('D:/demo/aa/bb') print(res) # os.path.isdir(path):用于判断路径,具体规则如下: # 1.路径不存在 =====================>返回False # 2.路径存在,但指向的是文件=====>返回False # 3.路径存在,并且是目录 =======>返回True result = os.path.isdir('D:/demo/aa/bb') print(result) # 判断是否为文件 res=os.path.isfile('D:/demo/aa/bb') print(res) # 扫描指定目录 result = os.scandir('D:/demo') for item in result: print('目录' if item.is_dir() else '文件', item.name) # os.walk(path): 按层级,递归地遍历指定目录下,所有的子目录和文件 result = os.walk('D:/demo') for item in result: print(item) # 危险操作!删除有内容的目录 shutil.rmtree('D:/demo')复制二进制文件到指定位置
import os #源文件 source = 'music.mp3' #目标目录 target = 'D:/media' # 如果目标目录不存在,那就去创建 if not os.path.isdir(target): os.makedirs(target) with open(source, 'rb') as f1, open(target + '/' + 'my_music.mp3', 'wb') as f2: while True: #每次只读取1KB data = f1.read(1024) #如果文件读取完毕了,就跳出循环 if not data: break #向目标文件中写入数据 f2.write(data) print('复制完毕')练习2:日志记录。
1.用户输入用户名和密码后,程序进行校验
2.用户名不存在,提示“用户名未注册”,并记录日志。
3.用户名存在,但密码错误,提示“密码错误”,并记录日志。
4.用户名和密码均正确,提示“登录成功”,并记录日志。
import time users = { '张三':'123456', '李四':'888888', '王五':'abc123' } #提示输入信息 username=input('请输入用户名:') password=input('请输入密码:') #获取当前的时间 now = time.strftime('%Y-%m-%d %H:%M:%S') #如果用户名不在users中 if username not in users: print('用户名未注册') with open('log.txt', 'at', encoding='utf-8') as file: file.write(f'{now}{username}登录失败 (用户未注册)\n') #如果密码不正确 elif users[username] != password: print('密码不正确') with open('log.txt', 'at', encoding='utf-8') as file: file.write(f'{now} {username} 密码错误\n') #登录成功 else: print('登录成功!') with open('log.txt', 'at', encoding='utf-8') as file: file.write(f'{now}{username} 登录成功 \n')