常用模块 1.时间模块 2.系统模块 3.项目开发目录规范

time模块
时间戳(timestamp):time.time()
延迟线程的运行:time.sleep(secs)
(指定时间戳下的)当前时区时间:time.localtime([secs])
(指定时间戳下的)格林威治时间:time.gmtime([secs])
(指定时间元组下的)格式化时间:time.strftime(fmt[,tupletime])
1) 当前时区时间
time_obj = time.localtime()
print(time_obj)
print(time_obj.tm_year)

2)格林威治时间
time_obj2 = time.gmtime()
print(time_obj2)
print(time_obj2.tm_hour)
print(time_obj2.tm_wday)  #  星期从周一开始计算,周一为数字0


31557294569
print(time.localtime(1557094569))  # 将时间戳转化成时间对象
print(time.gmtime(1557094569))


4) 格式化时间
 (2019, 5, 6, 6, 16, 9, 0, 126, 0)
res = time.strftime("%Y-%m-%d %H:%M:%S")
print(res)
res = time.strftime("%Y-%m-%d %H:%M:%S", (2008, 8, 8, 8, 8, 8, 0, 0, 0))
print(res)

datetime模块

当前时间:datetime.datetime.now()
昨天:datetime.datetime.now() + datetime.timedelta(days=-1)
修改时间:datetime_obj.replace([...])
格式化时间戳:datetime.date.fromtimestamp(timestamp)
import datetime

print(datetime.datetime.year)
print(datetime.datetime.day)
now_time = datetime.datetime.now()  # 当前时间
res = str(now_time)
print(res, res[:-7])

days = datetime.timedelta(days=7)  # 7天的时间对象
print(days, type(days))

# 免登陆时间运算 | 会员过期时间
time_obj = now_time + days
print(time_obj, type(time_obj))

new_time_obj = time_obj.replace(year=2000, day=1, second=0)
print(new_time_obj)

print(datetime.date.fromtimestamp(1557094560))  # 2019-05-06
calendar模块
判断闰年:calendar.isleap(year)
查看某年某月日历:calendar.month(year, mouth)
查看某年某月起始星期与当月天数:calendar.monthrange(year, mouth)
import calendar
print(calendar.isleap(2200))
print(calendar.month(2019, 5))
print(calendar.monthrange(2019, 5))
sys模块命令行参数List,第一个元素是程序本身路径:sys.argv                应用于自动化脚
 - sys.argv接受所有py文件作为脚本执行外界传入的参数
 - 外界执行传参的方式,cmd中通过python接收器直接执行py文件,python3 py文件 参数们
 - sys.argv = [py文件绝对路径, 参数1, ..., 参数n]
退出程序,正常退出时exit(0):sys.exit(n)
获取Python解释程序的版本信息:sys.version
最大int值:sys.maxsize | sys.maxint
环境变量:sys.path ******
操作系统平台名称:sys.platform
import sys
sys.exit(0)
print('哈哈')
print(sys.version)
print(sys.maxsize)
print(sys.maxint)  # py2 = sys.maxsize
print(sys.platform)

import sys
print(sys.argv)
import os.path

def f1():
print('执行自动化打印方法')

def f2():
print('执行自动化移动方法')

def copy_file(old, new):
# print("将%s复制成%s" % (old, new))
new_file = os.path.join(new, 'new.py')
with open(old, 'rb') as rf, open(new_file, 'wb') as wf:
for line in rf:
wf.write(line)


cmd_map = {
'print': f1,
'move': f2
}

if len(sys.argv) > 1:
cmd = sys.argv[1]
if cmd in cmd_map:
cmd_map[cmd]()

if len(sys.argv) == 4:
if sys.argv[1] == 'copy_file':
old = sys.argv[2]
new = sys.argv[3]

if os.path.isfile(old) and os.path.isdir(new):
copy_file(old, new)




os模块
生成单级目录:os.mkdir('dirname')
生成多层目录:os.makedirs('dirname1/.../dirnamen2')
重命名:os.rename("oldname","newname")
工作目录:os.getcwd()
删除文件:os.romeve('file_path')
删除单层空目录:os.rmdir('dirname')
移除多层空目录:os.removedirs('dirname1/.../dirnamen')
列举目录下所有资源:os.listdir('dirname')
路径分隔符:os.sep
行终止符:os.linesep
文件分隔符:os.pathsep
操作系统名:os.name
操作系统环境变量:os.environ
执行shell脚本:os.system()
import os
print(os.sep, os.linesep, os.pathsep, os.name, os.environ)

 os.mkdir('abc')  # 在当前文件所在路径下创建abc文件夹
 os.mkdir('D:\\abc')  # 就是在指定的绝对路径下创建abc文件夹

 os.mkdir('a/b/c')  # a,b必须提前存在,c不能存在
 os.makedirs(r'a\b\c')  # a,b存在与否都可以,c不能存在

 os.rename("a", "aa")

 print(os.getcwd())

 os.rmdir('aa/b/c')

 os.removedirs('aa/b/c')

 os.remove('aa/bb/1.py')

 print(os.listdir(r'F:\python8期\课堂内容\day18\代码\part4'))

def delete_dir(folder):
    for path in os.listdir(folder):
         如果path是文件夹 delete_dir(path)
         如果是文件os.remove(path)
        pass
     for走完了代表folder内部删空了,可以删folder

print(os.system('dir'))
案例

将part5下的mm.py移动到part6下abc文件夹中 import os import sys BASE_DIR
= os.path.dirname(os.path.dirname(__file__)) sys.path.append(BASE_DIR) def move_file(file, folder): if not (os.path.exists(file) and os.path.isfile(file)): print('文件不存在或非法') return False if not os.path.exists(folder): os.makedirs(folder) file_name = os.path.split(file)[1] # file_name = os.path.basename(file) new_file = os.path.join(folder, file_name) with open(file, 'rb') as rf, open(new_file, 'wb') as wf: for line in rf: wf.write(line) os.remove(file) file = os.path.join(BASE_DIR, 'part5', 'mm.py') folder = os.path.join(BASE_DIR, 'part6', 'abc') move_file(file, folder) 遍历打印目标路径中所有的txt文件 def print_txt(folder): if not os.path.exists(folder) or os.path.isfile(folder): return for path in os.listdir(folder): file_path = os.path.join(folder, path) if os.path.isfile(file_path) and file_path.endswith('.txt'): print(path) elif os.path.isdir(file_path): print_txt(file_path) # 递归 target_path = os.path.join(BASE_DIR, 'part6', 'target') print_txt(target_path)

项目开发目录规范

1.调研
2.需求分析
3.架构师完成项目demo,完成项目架构
4.分工
5.写代码
6.白盒黑盒测试
7.项目审核发布 => 项目 -> 产品

bin: 可执行文件,入口,入口也可以放在项目根目录下
core: 核心代码
db:数据库相关文件
interface:接口
lib:包、模块、第三方文件夹
log:日志
setting:配置
static:静态文件

 

 

猜你喜欢

转载自www.cnblogs.com/wyf20190411-/p/10828242.html
今日推荐