-
小程序:根据用户输入选择可以完成以下功能
** 创意文件,如果路径不存在,创建文件夹后再创建文件
能够查看当前路径
在当前目录及其所有子目录下查找文件名包含指定字符串的文件 **#!/bin/python3 # -*- coding:utf-8 -*- import os,sys def create(file_path): if not file_path: return if not os.path.exists(file_path): dir_name = os.path.dirname(file_path) file_name = os.path.basename(file_path) if dir_name == '': file1 = open(file_path, mode='w') file1.close() print("%s created" %file_path) else: if not os.path.exists(dir_name): os.makedirs(dir_name) file1 = open(file_path, mode='w') file1.close() print("%s created" %file_path) else: print("file already exists") def currentpath(): print(os.getcwd()) def search(str1): path_list = os.walk(os.getcwd()) temp_list = [] # file_path = ('%s/%s'%(x[0],y) for x in path_list for y in x[-1]) for x in path_list: for y in x[-1]: temp_list.append(os.path.join(x[0],y)) for x in temp_list: file_name = os.path.basename(x) if str1 in file_name: print(x) def main(): file_action = { '1':create, '2':currentpath, '3':search } while True: print("------------------ 1.create 2.currentpath 3.search ------------------ # ",end='') choice = input(">") if choice not in file_action: continue if choice == '1': file_path = input("create file:") file_action[choice](file_path) if choice == '2': file_action[choice]() if choice == '3': search_str = input("keyword:") file_action[choice](search_str) if __name__ == '__main__': main()
-
将三次登陆锁定的作业改为:
** python login.py -u alex -p 123456 输入的形式(-u,-p是固定的,分别代表用户名和密码) **#!/bin/python3 # -*- coding:utf-8 -*- ''' python login auth example ''' #imports import getpass,os,sys #functions def lock_user(username): ''' username -> modify userlist file ''' temp_str = "" with open("userlist.swp",'w') as file_write , open("userlist",'r') as file_read: for line in file_read: temp_list = eval(line) if temp_list[0] == username: temp_list[2] += 1 temp_str += str(temp_list)+" " continue temp_str += line file_write.write(temp_str) os.rename("userlist.swp", "userlist") def unlock_user(username): ''' username -> modify userlist file ''' temp_str = "" with open("userlist.swp",'w') as file_write , open("userlist",'r') as file_read: for line in file_read: temp_list = eval(line) if temp_list[0] == username: temp_list[2] = 0 temp_str += str(temp_list)+" " continue temp_str += line file_write.write(temp_str) os.rename("userlist.swp", "userlist") def user_input(): ''' input username&&password -> return username&&password ''' if not "-u" in sys.argv and not "-p" in sys.argv: print("help: -u [username] -p [password]") exit() username = sys.argv[sys.argv.index("-u")+1] password = sys.argv[sys.argv.index("-p")+1] # username = input("username:") # password = getpass.getpass("password:") return username,password def check_user(username,password = '',type = 'check'): ''' username,password,check -> return t||f #username password lock check username,password,lock -> return t||f #username locked or not ''' flag = False with open("userlist",'r') as file_read: for line in file_read: temp_list = eval(line) if type == 'check': if username == temp_list[0] and password == temp_list[1] and temp_list[2] < 2: return True #user not locked and correct user and pass if type == 'lock': if username == temp_list[0] and temp_list[2] >= 2: return True #user has been locked else: return False #login decorator def auth(func): def wrapper(*args,**kwargs): username,password = user_input() #get input # if not username and not password: # print("incorrect username or password!") # exit() if check_user(username, password,type='check'): #juge username and password correct or not print("login success!") unlock_user(username) func(username) #shell function else: if check_user(username, password, type='lock'): #juge user locked or not print("This account has been locked!") else: lock_user(username) #lock count += 1 print("incorrect username or password!") return wrapper #shell function @auth def login_index(username = ""): ''' shell program ''' while True: command = input("%s>" %username) #ask input command if command == 'ls': print( ''' bin dev home lib64 media opt root sbin sys usr boot etc lib lost+found mnt proc run srv tmp var ''') if command == 'exit': #exit shell print("byebye!") exit() def main(): ''' main program ''' login_index() #program entry if __name__ == '__main__': main()
-
层级结构:
dir1 ---hello.py dir2 ---main.py 其中,hello.py: def add(x,y): return x+y
** main.py如何能调用到hello.py中的add函数。 **
在dir1目录内添加__init__.py,main.py内为sys.path添加上级目录import sys print(sys.path) sys.path.append("..") print(sys.path) import dir1.hello print(dir1.hello.add(1, 5))
-
显示当前时间三天后是星期几?
import time def week_display(after_days): second_time = time.time() second_time += 86400 * after_days local_time = time.localtime(second_time) print(time.strftime("%A",local_time )) week_display(2)