——————————————————————————————————————————————————————————————————

start.py

import sys,os

# print(__file__)#当前文件的一个路径

# print(os.path.abspath(__file__)) #当前文件的绝对路径
# print(os.path.dirname(os.path.abspath(__file__)))
# print(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR )
from core import src if __name__ == '__main__':
src.run()

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

src.py

def login():
print('登陆功能') def register():
print('注册')
name=input('enter your name>>: ').strip()
pwd=input('enter you password>>: ').strip()
with open(settings.DB_PATH,mode='at',encoding = 'utf-8')as f:
f.write('%s:%s \n'%(name,pwd))
f.flush()
common.logger('%s注册成功 \n'%name)
print('注册成功') def shopping():
print('购物') def transfer():
print('转账') def pay():
print('支付') funcs_dic={
'1':login,
'2':register,
'3':shopping,
'4':transfer,
'5':pay
} def run():
while True:
print("""
1.登陆 | 2.注册 | 3.购物 | 4.转账 | 5.支付 | 6.退出
""")
choice=input('>>>: ').strip()
if choice == '6':return
if choice not in funcs_dic:
print('错误,请再次输入')
continue
funcs_dic[choice]() run() _____________________________________________________________________________________________________________________________

settings.py

import os
# print(__file__) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) DB_PATH = os.path.join(BASE_DIR,'db','db.txt') #DB_PATH = r'%s\db\db.txt'%BASE_DIR LOG_PATH = os.path.join(BASE_DIR,'log','user.log.txt') # print(DB_PATH)
# print(LOG_PATH) # LOG_PATH = r'%s\log\user.log.txt'%BASE_DIR # DB_PATH = r'D:\zrg\day19\文件开发的目录规范\ATM\db\db.txt'
#
# LOG_PATH = r'D:\zrg\day19\文件开发的目录规范\ATM\log\user.log.txt' ____________________________________________________________________________________________________________________________________ common.py
import time

from conf import settings

def logger(msg):
current_time=time.strftime('%Y-%m-%d %X')
with open(settings.LOG_PATH,'a',encoding='utf-8')as f:
f.write('%s %s'%(current_time,msg))
f.flush() # print(time.strftime('%Y-%m-%d %X')) ___________________________________________________________________________________________________________________________

time.py

# 与时间相关的一个模块
import time # 时间分三类:
# 1.时间戳 从1970年1.1日到现在的秒数
# print(time.time()/60/60/24)
# 计算时差
# t=time.time()
# time.sleep(2)
# t1=time.time()
# print(t1-t) # 2.结构化时间
# print(time.localtime())
# 返回的是一个值,其中包含一个元组,里面是每个时间的值(东八区)
#time.struct_time(tm_year=2018, tm_mon=10, tm_mday=15, tm_hour=17, tm_min=29, tm_sec=7, tm_wday=0, tm_yday=288, tm_isdst=0) # 单独获取某个时间属性
# print(time.localtime().tm_year)
# # 2018
# print(time.localtime().tm_hour)
# # 17 # 世界同一时间,比北京时间晚了八小时
# print(time.gmtime()) # 3.格式化的字符串时间
# print(time.strftime('%Y-%m-%d %H:%M:%S'))
# print(time.strftime('%Y-%m-%d %X')) # 相互转换 # 时间戳转换成结构化
# print(time.localtime(0)) #元年 # 结构化转换成格式化的字符串 # 字符串转换为结构化 # 结构化转为时间戳 # 格林威治时间 time.asctime()
time.ctime() ____________________________________________________________________________________________________________________________ date.time.py
# 这是一个包,里面包含对事件的处理,对日期的处理
import datetime
#获取当前详细的时间
print(datetime.datetime.now())
# 获取当前时间的一部分
print(datetime.datetime.now().year) # 替换时间的某一部分
# t1=datetime.datetime.now()
# t1=t1.replace(year=2020)
# print(t1) # t1=datetime.datetime.now()
# t2=datetime.datetime.now()
# print(t2-t1)

时间差对象

tal=datetime.timedelta(days=20)
t1=datetime.datetime.now()
print(t1+tal)

软件开的目录规范+sys,os,time模块的更多相关文章

  1. python-模块入门二(模块循环导入,区分python文件的两种用途,模块搜索路径,软件开发的目录规范)

    一.模块的循环导入问题 run.py # import m1 # 第一次导入 m1.py # 错误示范 ''' print('正在导入m1') from m2 import y #第一次导入m2 x= ...

  2. [软件开发的目录规范、区分py文件的两种用途]

    [软件开发的目录规范] 软件开发的目录规范 bin: 执行文件 conf: 存放配置文件相关代码 core: 存放源文件,业务逻辑相关代码 db: 存放数据库文件,主要用于与数据库交互 lib: 存放 ...

  3. python sys os hashlib_MD5 模块

    模块 内置模块是Python自带的功能,在使用内置模块相应的功能时,需要[先导入]再[使用] 一.sys 用于提供对Python解释器相关的操作: ? 1 2 3 4 5 6 7 8 9 sys.ar ...

  4. 第十篇、模块一、sys\os\hashlib模块的应用

    一.模块分为三种 1)自定义模块 2)第三方模块 3)内置模块 如何导入模块? 下面两种: 1)import 模块名字  as 别名(重新给模块命名) 2)from  模块名字  import 功能( ...

  5. python学习之-软件开发的目录规范

    通常软件目录下有几个标准文件夹 软件主文件夹命名,通常都是大写(ATM_SHOPPING) ------------------------------------------------------ ...

  6. devi into python 笔记(五)异常 文件操作 sys os glob模块简单实用

    异常: Java异常: try catch块处理异常,throw引发异常. Python异常: try except块处理异常,raise引发异常. 异常如果不主动处理,则会交给Python中的缺省处 ...

  7. random,time,sys,os,序列化模块

    random模块(随机数模块) 取随机小数: random.random() 取0-1之间的小数 random.uniform(x, y) 取x-y之间的小数 取随机整数: random.randin ...

  8. day21 模块与包+软件开发目录规范

    目录 一.导入模块的两种方式 二.模块搜索的路径的优先级 三.循环导入 四.区分py文件的两种用途 五.编写一个规范的模板 五.包 1 什么是包 2 为什么要有包 3 包的相关使用 3.1 在当前文件 ...

  9. py 包和模块,软件开发目录规范

    目录 py 包和模块,软件开发目录规范 什么是包? 什么是模块? 软件开发目录规范 py 包和模块,软件开发目录规范 什么是包? 包指的是内部包__init__.py的文件夹 包的作用: 存放模块,包 ...

随机推荐

  1. oracle 迁移

    一.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建. create directory exp_shengchan as '/home/oracle/exp_shen ...

  2. MP实战系列(一)之入门框架搭建和使用

    mybatis plus官网:https://github.com/baomidou/mybatis-plus 上面有对应的实际例子,直接导入即可用. mybatis plus官方的怎么介绍,我就不在 ...

  3. 原生js 数组的迭代的方法

    一.原生js Array给我们提供很多了方法.方便我们操作数组.这些方法的参数,都需要传入一个匿名函数,匿名函数中有三个参数,分别含义是:数组中的项.该项的索引.以及数组本身. 1.filter方法: ...

  4. python 数据结构 - 栈

    如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10293388.html 欢迎关注小婷儿的博客: 有问题请在博客下留言或加作者微信:t ...

  5. C++的 new 和 detele

    什么都不说 直接上代码  哈哈 #include <iostream> using namespace std; int main(int argc, char *argv[]) { co ...

  6. MySQL(十四)管理维护及性能优化

    关于MySQL的学习,<MySQL必知必会>这本书呢,看完已经两个月了,一直被工作以及生活的一些琐事拖着,趁着今晚有空闲,就整理完了最后的几章学习笔记,接下来的学习计划呢, 应该是pyth ...

  7. 画线函数Glib_Line算法的研究

      在这里首先先简单把我对函数的功能的理解阐述一下,方便后面的分析:Glib_Line函数实现的功能是通过参数给定(x1,y1,x2,y2,color),来确定起点(x1,y1)和终点(x2,y2)两 ...

  8. Luogu4770 NOI2018 你的名字 SAM、主席树

    传送门 UPD:发现之前被smy误导的一个细节,改过来之后就AC了-- 一道比较套路的SAM题,虽然我连套路都不会-- 先考虑前\(68pts\),也就是\(l=1 , r=|S|\)的情况.我们对\ ...

  9. [Oracle]快速构造大量数据的方法

    [Oracle]快速构造大量数据的方法: create table tab001(id integer primary key, val varchar2(100)); insert into tab ...

  10. [HNOI2018]排列[堆]

    题意 给定一棵树,每个点有点权,第 \(i\) 个点被删除的代价为 \(w_{p[i]}\times i\) ,问最小代价是多少. 分析 与国王游戏一题类似. 容易发现权值最小的点在其父亲选择后就会立 ...