1.模块化作业
1.回顾文件递归遍历. 默写一遍.
入口在: 当文件是个文件夹的时候
出口在: 文件是一个文件
2.计算时间差(用户输入起始时间和结束时间. 计算时间差(小时),
例如, 用户输入2018-10-08 12:00:00 2018-10-08 14:30:00 输出2小时
3.写一个函数,接收一个参数,如果是文件,就执行这个文件,如果是文件夹,就执行这个文件夹下的所有的py文件。
4.写一个copy函数,接受两个参数,第一个参数是源文件的位置,第二个参数是目标位置,将源文件copy到目标位置。
5.获取某个文件所在目录的上一级目录。
30分
6.使用os模块创建如下目录结构
# glance # ├── __init__.py # ├── api # │ ├── __init__.py # │ ├── policy.py # │ └── versions.py # ├── cmd # │ ├── __init__.py # │ └── manage.py # └── db # ├── __init__.py # └── models.py
7.写一个用户注册登陆的程序,每一个用户的注册都要把用户名和密码用字典的格式写入文件userinfo。在登陆的时候,再从文件中读取信息进行验证。
8.使用random模块,编写一个发红包的函数
2.作业详解
点击查看详细内容
#1. import os def func(path,n=0): path_list = os.listdir(path) #1.打开文件夹,查看当前目录的文件 for name in path_list: #2.遍历文件名 abs_path = os.path.join(path,name) #3.文件绝对路径 if os.path.isdir(abs_path): print("\t"*n,name,":") func(abs_path,n+1) #递归,n:层数,多一层多一个 "\t" else: print("\t"*n,name) ret = func('E:\S15\day1') #2. import time start_time = time.strptime('2018-10-08 12:00:00','%Y-%m-%d %H:%S:%M') end_time = time.strptime('2018-10-08 14:30:00','%Y-%m-%d %H:%S:%M') sub_time = time.mktime(end_time) - time.mktime(start_time) gm_time = time.gmtime(sub_time) print('过去了%d年%d月%d日%d时%d分%d秒'%(gm_time.tm_year-1970,gm_time.tm_mon-1, gm_time.tm_mday-1,gm_time.tm_hour, gm_time.tm_min,gm_time.tm_sec)) #3. #思路: #先判断这个path是文件还是文件夹 #如果是文件:.py结尾的,执行文件:os.system('python path') #如果是文件夹:查看文件夹下的所有内容,如果是文件.py结尾则执行 import os def exec_py(path): if os.path.isfile(path) and path.endswith('.py'): os.system('python %s'%path) elif os.path.isdir(path): path_list = os.listdir(path) for name in path_list: abs_path = os.path.join(path,name) if os.path.isfile(abs_path) and abs_path.endswith('.py'): os.system('python %s'%abs_path) elif os.path.isdir(abs_path): exec_py(abs_path) exec_py(r'E:\S15\day20') #4. def copy(path1,path2): filename = os.path.basename(path1) if os.path.isfile(path1) and os.path.isdir(path2): path2 = os.path.join(path2,filename) if os.path.exists(path2): print('文件已存在') else: with open(path1,'rb') as f1,\ open(path2,'wb') as f2: content = f1.read() f2.write(content) copy(r'E:\S15\day20\01.内容回顾.txt',r'E:\S15\day19') #5. def get_cwd(path): return os.path.dirname(path) ret = get_cwd('E:\S15\day20') #6. os.makedirs('glance/api') os.makedirs('glance/cmd') os.makedirs('glance/db') open('glance/__init__.py','w').close() open('glance/api/__init__.py','w').close() open('glance/api/policy.py','w').close() open('glance/api/versions.py','w').close() open('glance/cmd/__init__.py','w').close() open('glance/cmd/manage.py','w').close() open('glance/db/__init__.py','w').close() open('glance/db/models.py.py','w').close() #7. #思路: import pickle def enrol(): username = input("Input Username:") password = input("Input Password:") dic = {'usr':username,'pwd':password} with open('userinfo','ab') as f: pickle.dump(dic,f) print('注册成功') enrol() def login(): username = input("Input Username:") password = input("Input Password:") with open('userinfo','rb') as f: while True: try: str_dic = pickle.load(f) if str_dic['usr'] == username and str_dic['pwd'] == password: print('登陆成功') break except EOFError: print('登陆失败') break login() #8.发红包 import random def send_money(money,num): money = money * 100 #整数进两位,后面算出小数 ret = random.sample(range(1,money),num-1) ret.sort() ret.insert(0,0) ret.append(money) #print(ret) for i in range(len(ret)-1): yield (ret[i+1] - ret[i])/100 ret_g = send_money(200,10) for i in ret_g: print(i)
来源:https://www.cnblogs.com/byho/p/10796585.html