1. 小程序:根据用户输入选择可以完成以下功能:

    创意文件,如果路径不存在,创建文件夹后再创建文件


    能够查看当前路径


    在当前目录及其所有子目录下查找文件名包含指定字符串的文件

import os
choice={
"1":"创建文件",
"2":"查看当前路径",
"3":"查找文件名",
"4":"退出程序"
} def mkdir():
file_path = input("please input your file_path:").strip()
try:
os.chdir(file_path)
print("%s存在,不需要重新创建" % file_path)
except:
print("%s不存在,开始创建文件" % file_path)
os.makedirs(file_path)
print("%s创建完成" % file_path) def check():
file_name = input("please input your file_name:").strip()
try:
print("%s绝对路径为:%s"%(file_name,os.path.abspath(file_name)))
except:
print("%s不存在,开始创建文件" % file_name) def search():
file_dir = input("please input your file_dir:").strip()
print("当前目录为:%s,子目录和所有文件为:%s" % (os.getcwd(), os.listdir(os.getcwd()))) while True:
for key in choice:
print(key,choice[key])
num=int(input("please input your choice:").strip()) if num==1:
mkdir() elif num==2:
check() elif num == 3:
search() elif num==4:
break

  

2. 将三次登陆锁定的作业改为:python login.py -u alex -p 123456 输入的形式(-u,-p是固定的,分别代表用户名和密码)

#将三次登陆锁定的作业改为:
# python login.py -u alex -p 123456 输入的形式
# (-u,-p是固定的,分别代表用户名和密码)
import sys
if(sys.argv[sys.argv.index("-u")+1] == "egon" and sys.argv[sys.argv.index("-p")+1] == "somebody" ):
print("Congratulations")
else:
print("Error")
#!/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)+"\n"
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)+"\n"
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:\n-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()

  

3. 层级结构:


    dir1


    ---hello.py


    dir2


    ---main.py


    其中,hello.py:


    def add(x,y):


        
return x+y

 main.py如何能调用到hello.py中的add函数?

参考博客结尾的内容,单独导入包。http://www.cnblogs.com/xuyaping/p/6797032.html

注:此题中导入的模块只是一个简单的模块,和博客中导入模块不同的是没有__init__文件,更简单些。

#main.py
import sys,os
sys.path.append("E:\python学习\day33常用模块\作业\dir1")
print(sys.path)
--->['E:\\python学习\\day33常用模块\\作业\\dir2', 'E:\\python学习', 'C:\\Users\\Administrator.PC-201509301704\\AppData\\Local\\Programs\\Python\\Python36\\python36.zip', 'C:\\Users\\Administrator.PC-201509301704\\AppData\\Local\\Programs\\Python\\Python36\\DLLs', 'C:\\Users\\Administrator.PC-201509301704\\AppData\\Local\\Programs\\Python\\Python36\\lib', 'C:\\Users\\Administrator.PC-201509301704\\AppData\\Local\\Programs\\Python\\Python36', 'C:\\Users\\Administrator.PC-201509301704\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages', 'E:\\python学习\\day33常用模块\\作业\\dir1'] import hello
print(hello.add(1,2))
--->3

4. 显示当前时间三天后是星期几?

import time
c=time.localtime()
print(c) #当前时间
--->time.struct_time(tm_year=2017, tm_mon=4, tm_mday=26, tm_hour=23, tm_min=40, tm_sec=54, tm_wday=2, tm_yday=116, tm_isdst=0) t=time.time()-3600*24*3
print(time.localtime(t))
--->time.struct_time(tm_year=2017, tm_mon=4, tm_mday=23, tm_hour=23, tm_min=44, tm_sec=30, tm_wday=6, tm_yday=113, tm_isdst=0) print(time.localtime(t).tm_wday)
--->6

  

python(31)- 模块练习的更多相关文章

  1. python基础-模块

    一.模块介绍                                                                                              ...

  2. Day05 - Python 常用模块

    1. 模块简介 模块就是一个保存了 Python 代码的文件.模块能定义函数,类和变量.模块里也能包含可执行的代码. 模块也是 Python 对象,具有随机的名字属性用来绑定或引用. 下例是个简单的模 ...

  3. python 各模块

    01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支 ...

  4. python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET

    python random模块 - 小驹的专栏 - 博客频道 - CSDN.NET python random模块 分类: python 2011-11-15 15:31 6037人阅读 评论(2) ...

  5. Day5 模块及Python常用模块

    模块概述 定义:模块,用一砣代码实现了某类功能的代码集合. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,提供了代码的重用性.在Python中,一个.py文件就称之为一个模块(Mod ...

  6. SUSE Linux Enterprise 11 离线安装 DLIB python机器学习模块

    python机器学习模块安装 环境:SUSE Linux Enterprise 11 sp4  离线安装 说明:在安装dlib时依赖的基础 环境较多,先升级gcc,以适应c++ 11的使用:需要用到c ...

  7. Python(五)模块

    本章内容: 模块介绍 time & datetime random os sys json & picle hashlib XML requests ConfigParser logg ...

  8. Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures

    参考博客: https://www.cnblogs.com/xiao987334176/p/9046028.html 线程简述 什么是线程?线程是cpu调度的最小单位进程是资源分配的最小单位 进程和线 ...

  9. Python之模块和包

    一.模块 1.什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...

  10. python常用模块之时间模块

    python常用模块之时间模块 python全栈开发时间模块 上次的博客link:http://futuretechx.com/python-collections/ 接着上次的继续学习: 时间模块 ...

随机推荐

  1. Leetcode 417.太平洋大西洋水流问题

    太平洋大西洋水流问题 给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度."太平洋"处于大陆的左边界和上边界,而"大西洋"处于大陆的右边界和下 ...

  2. 2015长春网络赛1001 求连通快数量的问题dfs

    Ponds Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Sub ...

  3. CentOS7下RabbitMQ服务安装配置胜多负少

    RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.RabbitMQ据说具有良 ...

  4. eclipse中添加svn插件

    在eclipse中使用svn查看能非常方便的对代码进行查看和更新提交操作,能及时知道代码的更新状态. 在eclipse中如果要使用svn,只能使用svn插件的方式进行. 插件地址:http://sub ...

  5. iOS长按手势调用两次解决方法

    由于以前没有很细致的研究过长按手势,所以今天使用的时候发现长按手势会调用两次响应事件. 主要原因是长按手势会分别在UIGestureRecognizerStateBegan和UIGestureReco ...

  6. BZOJ 4817 [Sdoi2017]树点涂色 ——LCT 线段树

    同BZOJ3779. SDOI出原题,还是弱化版的. 吃枣药丸 #include <map> #include <cmath> #include <queue> # ...

  7. Eclipse + Apache Axis2 发布RESTful WebService(三)第一个程序Hello Axis2 !(未成功)

    此路不通 Axis2发布SOAP WebService非常简单,建一个Dynamic Web Project,然后为它建一个Axis的Web Service(Tomcat7+JDK),就会生成Clas ...

  8. [转] Makefile 基础 (9) —— Makefile 使用make更新函数库文件

    该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自 ...

  9. ubuntu16.04下安装wine1.8.2

    如果是amd64则需要执行这个: sudo dpkg --add-architecture i386 1 1 添加wine最新的源 sudo add-apt-repository ppa:wine/w ...

  10. 语音按钮功能之UIButton的UIControlEventTouchUpInside没有执行问题

    新版本im功能开发过程中,遇到个奇葩的问题. 就是点击语音按钮,点击一下松开,不执行UIControlEventTouchUpInside的方法.所以导致一直在录音 但是长按2秒以上,是可以执行UIC ...