一,实现自定义包案例:

        包含trans和work两个包

        两个包都有同样的tools模块

        包含 constants常量模块 模块中会引用常量模块提供的常量值

        在测试模块中可以分别调用tools相关方法

   目录结构图如下:test_module.py为测试模块

   

python 判断字符串是否是string类型 python中判断字符串类型_python

   1,实现  根据输入的时间 得到一个唯一的ID值 功能:

          a,建立trans包 在包内建立tools.py文件,写入功能逻辑,代码如下:

"""
  根据输入的时间 得到一个唯一的ID值
"""
from datetime import datetime
import random
def date_trans_id(date=None):
    #判断如果不输入日期,默认为当前时间
    if date is None:
        date = datetime.now()
    #保证输出的字符串唯一性:日期+时间+随机数(暂定6位随机数)
    return '{0}{1}'.format(date.strftime('%Y%m%d%H%M%S%f'),random.randint(200000,900000))

          b,在nutils目录下建立test_module.py文件 为测试文件,引入包 写入测试代码:

from trans.tools import date_trans_id
from datetime import datetime

def test_trans_tool():
    d1 = date_trans_id()
    print(d1)
    date = datetime(2020, 10, 20, 12, 50, 59)
    d2 = date_trans_id(date)
    print(d2)

if __name__ == '__main__':
    test_trans_tool()

     运行结果:

       

python 判断字符串是否是string类型 python中判断字符串类型_python_02

    注意: if__name__=="__main__"的主要作用就是为了测试当前模块(A)的函数, 在if__name__=="__main__"下进行函数的调用。其他模块导入A模块时,不会执行A模块中调用函数的内容。

 

 2,实现 根据文件的后缀名来判断文件的类型

    a,建立work包 在包内建立tools.py文件,写入功能逻辑,代码如下:

"""
 根据文件的后缀名来判断文件的类型
 -1:代表未知或者其他文件类型
  0:代表图片类型文件
  1:代表word文件类型
  2:代表excel文件类型
  3:代表ppt文件类型
"""
import os.path
def get_file_type(file_name):
    r = -1
    if not os.path.isfile(file_name):
        return r
    file_name, ext = os.path.splitext(file_name) #os.path.splitext用来判断文件类型
    e = ext.lower()#将文件后缀名统一成小写
    if e in ('.jpg','.png','.gif'):
        r = 0
    elif e in ('.doc','.docx'):
        r = 1
    elif e in ('.xls','.xlsx'):
        r = 2
    elif e in ('.ppt','.pptx'):
        r = 3
    else:
        r = -1
    return r

     b,在nutils目录下的test_module.py文件 为测试文件,引入包 写入测试代码:

from work.tools import get_file_type

def test_file_type():
    d = get_file_type('C:\\Users\\Administrator\\Desktop\\ds.doc')
    print(d)

if __name__ == '__main__':

    test_file_type()

          输出结果为:1 代表文件为word类型

      如果想要修改图片类型代表的数字  在当前代码修改 ,如果只是一个地方引用修改较少,如果多方引用 修改起来会比较繁琐。需要修改多处; 可以通过建立常量 constents 模块(Python通过自定义实现常量,命名全部大写,值一旦绑定变不可修改)

   代码如下:


python 判断字符串是否是string类型 python中判断字符串类型_后缀名_03

     把 constents.py文件引入到work包下的tools.py,修改后代码写法如下:


python 判断字符串是否是string类型 python中判断字符串类型_python_04