阅读目录python
时间模块(time、datetime)shell
日历模块(calendar)数据库
sys模块windows
os模块架构
os.path模块app
##时间模块函数
# #time模块:时间戳、结构化的时间、格式化的字符串时间 # #一、时间戳(timestamp):一般来讲,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。咱们运行“type(time.time())”,返回的是float类型。 # #二、格式化的时间字符串(Format String) # #三、结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,是不是夏令时) # #四、英文显示 'Mon Jan 26 00:52:24 1970' ----》format默认为:"%a %b %d %H:%M:%S %Y"
import datetime import time #时间戳 1557227892.3337016 print(time.time()) #将时间戳转换为本地时区结构化时间元组 struct_time print(time.localtime()) #将时间戳转换为UTC时区结构化时间元组 struct_time print(time.gmtime()) #将一个struct_time转化为时间戳 ---> 1557229253.0 print(time.mktime(time.localtime())) #结构化时间转为格式化输出时间 2019-05-07 19:38:23 print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))) #把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操做 time.struct_time(tm_year=2019, tm_mon=5, tm_mday=7, tm_hour=19, tm_min=38, tm_sec=23, tm_wday=1, tm_yday=127, tm_isdst=-1) print(time.strptime('2019-05-07 19:38:23','%Y-%m-%d %X')) #结构化时间转为英文格式输出、无参默认传入结构化时间time.localtime() print(time.asctime())#Tue May 7 19:48:26 2019 print(time.asctime(time.localtime())) print(time.asctime(time.localtime(time.time()))) #将时间戳转为英文格式输出、无参默认传入时间戳time.time() print(time.ctime()) print(time.ctime(time.time())) #得到当前时间 2019-05-07 19:56:56.738921 print(datetime.datetime.now()) #时间戳格式time.time()转为日期格式 2019-05-07 print(datetime.date.fromtimestamp(time.time())) #得到三天后时间2019-05-10 20:03:08.253856 print(datetime.datetime.now() + datetime.timedelta(3)) #得到三天前的时间2019-05-04 20:03:54.933696 print(datetime.datetime.now() + datetime.timedelta(-3)) #得到当前时间+3小时 2019-05-07 23:04:29.103221 print(datetime.datetime.now() + datetime.timedelta(hours=3)) #得到当前时间+30分钟 2019-05-07 20:35:01.856802 print(datetime.datetime.now() + datetime.timedelta(minutes=30)) c_time = datetime.datetime.now() print(c_time.replace(minute=3,hour=2)) #时间替换 print( datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) print(datetime.datetime(2014, 8, 15, 9, 57, 52, 779893)) print(datetime.datetime.today())#2019-05-07 20:13:31.223521
%y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %M 分钟数(00=59) %S 秒(00-59) %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %j 年内的一天(001-366) %p 本地A.M.或P.M.的等价符 %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %Z 当前时区的名称 %% %号自己
##日历模块(calendar)测试
import calendar #判断是不是闰年 print(calendar.isleap(2019)) #查看某年某月日历 print(calendar.month(2018,8)) c = calendar.calendar(2017) c = calendar.TextCalendar() c = calendar.HTMLCalendar() print(c) #返回两个整数。第一个是该月的首日所在星期的日期码(0~6),每周的起始日期码0(星期一)到6(星期日),第二个是该月的天数(28-31) print(calendar.monthrange(2019, 5)) #查看某年某月某日是星期几 print(calendar.weekday(2017, 7, 23))
##sys模块spa
#1 sys.argv 命令行参数List,第一个元素是程序自己路径 #2 sys.exit(n) 退出程序,正常退出时exit(0) #3 sys.version 获取Python解释程序的版本信息 #4 sys.maxint 最大的Int值 #5 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 #6 sys.platform 返回操做系统平台名称 #示例 import sys import os.path print(sys.argv)#['C:/untitled1/第十八天/第十八天.py'] 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] # copy_file(old,new) if os.path.isfile(old) and os.path.isdir(new): copy_file(old,new) #在命令行输入
python3 C:\untitled1\第十八天\第十八天.py print python3 C:\untitled1\第十八天\第十八天.py copy_file C:\untitled1\user_info C:\untitled1\第十八天
##os.path 模块操作系统
#执行文件的当前路径:__file__ #返回path规范化的绝对路径:os.path.abspath(path) #将path分割成目录和文件名二元组返回:os.path.split(path) #上一级目录:os.path.dirname(path) #最后一级名称:os.path.basename(path) #指定路径是否存在:os.path.exists(path) #是不是绝对路径:os.path.isabs(path) #是不是文件:os.path.isfile(path) #是不是路径:os.path.isdir(path) #路径拼接:os.path.join(path1[, path2[, ...]]) #最后存取时间:os.path.getatime(path) #最后修改时间:os.path.getmtime(path) #目标大小:os.path.getsize(path)
import os.path #C:/untitled1/第十八天/第十八天.py print(__file__) #C:\untitled1\第十八天\n第十八天.p res = os.path.abspath('C:\\untitled1\第十八天\第十八天.py') res1 = os.path.abspath('C:/untitled1\第十八天\第十八天.py') res2 = os.path.abspath(r'C:\untitled1\第十八天\第十八天.py') res3 = os.path.abspath('C:/untitled1\第十八天\\n第十八天.py') print(res3) #('C:\\untitled1', '第十八天') res=os.path.split(r'C:\untitled1\第十八天') print(res) print(res[1])#第十八天 #上一级C:/untitled1/第十八天 print(os.path.dirname(__file__)) print(os.path.dirname(os.path.dirname(__file__)))#C:/untitled1 BASE_DIR = os.path.dirname(os.path.dirname(__file__)) print(BASE_DIR)#该项目根目录是在执行时自动获取的当前项目根目录的绝对路径 #案例:项目根目录的应用场景 import sys sys.path.append(BASE_DIR)#全部的导包/模块兜里来BASE_DIR print(sys.path) #最后一级名称 第十八天.py print(os.path.basename(r'C:\untitled1\第十八天\第十八天.py')) #路径拼接 new_path = os.path.join(BASE_DIR,'第十七天','pgk','test.py') print(os.path.exists(new_path)) #判断是否存在 print(os.path.isabs(new_path))#判断是不是绝对路径 print(os.path.isfile(new_path))#判断是不是文件 print(os.path.isdir(new_path))#判断是不是文件夹/目录 #获取文件大小 print(os.path.getsize(r'C:\untitled1\第十八天\new.py')) # file_path = r'C:\untitled1\第十八天\第十八天.py' print(os.path.getctime(file_path))#建立时间 print(os.path.getatime(file_path))#访问时间 print(os.path.getmtime(file_path))#修改时间
##os模块
#生成单级目录:os.mkdir('dirname') #生成多层目录:os.makedirs('dirname1/.../dirnamen2') #重命名:os.rename("oldname","newname") #工做目录:os.getcwd() #删除单层空目录:os.rmdir('dirname') #移除多层空目录:os.removedirs('dirname1/.../dirnamen') #删除文件:os.remove(file) #列举目录下全部资源:os.listdir('dirname') #路径分隔符:os.sep #行终止符:os.linesep #文件分隔符:os.pathsep #操做系统名:os.name #操做系统环境变量:os.environ #执行shell脚本:os.system()
#示例
import os
# os.mkdir('abc')#在当前文件所在路径下建立abc文件夹
# os.mkdir('D:\\abc')#在绝对路径下建立
#不能递归建立,文件夹c前面不存在报错
# os.mkdir('a/b/c')
#递归建立
# os.makedirs(r'a\b\c')
#重命名
# os.rename('a','aa')
# #删除空目录,不空没法删除
# os.rmdir('aa/b/c')
# os.removedirs('aa/b/c')
#删除文件,
os.remove()
##跨文件移动文件
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)
##递归删除的思路
def delete_dir(folder): for path in os.listdir(folder): # 若是path是文件夹 delete_dir(path) # 若是是文件os.remove(path) pass # for走完了表明folder内部删空了,能够删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:静态文件