python9
进行自定义包调用的时候 如果将包视为文件夹,可以直接通过 from work(报名字) import toos(包里面的文件名) 然后再通过 toos.gen_trans_id()(文件里面的函数名字)调用 这种情况不能通过import work调用 如果要通过import work直接调用,work包里面必须包含文件 __init__.py 且这个文件必须引入work文件夹里面的其他文件 from .toos import * 调用就是通过 work.get_file_type(file_name) 不在需要经过toos
work/toos.py import os.path import static def get_file_type(fle_name): """ 根据文件的名称判断文件的类型 :param fle_name: :return: int 文件类型 """ result = static.FILE_TYPE_UNKNOW #判断是否是文件路径,必须有这个文件才可以的, #if not os.path.isfile(fle_name): # return result #文件的后缀可能是大写或小写,所以统一换成小写 path_name,ext = os.path.splitext(fle_name) print(ext) ext = ext.lower() if ext in {'.png','.jpg','.gif','.bmp'}: result = static.FILE_TYPE_IMG elif ext in {".doc",".docx"}: result = static.FILE_TYPE_DOC elif ext in {".ppt",".pptx"}: result = static.FILE_TYPE_PPT elif ext in {".xls",".xlsx"}: result = static.FILE_TYPE_EXCEL elif ext in {".exe"}: result = static.FILE_TYPE_EXE return result def abc(): print("abc")
test.py from datetime import datetime #from trans.toos import gen_trans_id #from work.toos import get_file_type from trans import toos as ttool #from work import toos as wtool import work def test_trans_tool(): """ 测试trans 下的tools模块 """ id1 = ttool.gen_trans_id() print(id1) date = datetime(2016, 10, 2, 12, 30, 45) id2 = ttool.gen_trans_id(date) print(id2) def test_work_tool(): """ 测试work模块 :return: D:\\Program Files (x86)\\Tencent\\QQ\\QQUninst.exe """ file_name = "D:\\Program Files (x86)\\Tencent\\QQ\\QQUninst.doc" rest = work.get_file_type(file_name) print(rest) if __name__ == "__main__": test_trans_tool() test_work_tool()
static.py #文件类型常量 FILE_TYPE_UNKNOW = 10 #未知文件 FILE_TYPE_IMG = 11 #图片 FILE_TYPE_DOC = 12 #文档 FILE_TYPE_EXCEL = 13 #excel文档 FILE_TYPE_PPT = 14 #ppt 文件 FILE_TYPE_EXE = 15 #执行文件
work/__init__.py from .toos import *