前言
在写项目级别的工程时候,需要将常用的函数封装成一个工具文件中,作为一名数据仔,通常只是写写脚本,而且写脚本额位置也不是很固定,这个时候怎么办呢?怎么能够一劳永逸呢?怎么能随心所欲的import呢?
那么,这个时候,你需要把你的工具函数打包成一个模块,集成到python模块中。
1、打包与安装
作为一个数据分析仔,和时间序列数据打交道是在平常不过了,下面有一个获取日期对应是星期几的函数为列子,将其打包,我们便可以随时import,随后调用。
步骤
(1)创建一个文件夹,文件夹里面分别有工具函数的脚本文件,以及setup文件
(2)编写setup文件
from distutils.core import setup
setup(
#这两个是必须的
name = 'katyusha_utils',
py_modules= ['katyusha_utils'],
#以下可有可无
version = '1.0.0',
author = '',
author_email = '',
url = '',
description = 'A simple function',
)
(3)编写katyusha_utils文件,功能是判断日期对应是星期几
```py
# -*- coding:utf-8 -*-
import datetime
def get_week_day(date_time):
'''
parma:data_time,日期格式2019-01-01
return:该日期对应的是星期几
'''
if type(date_time) is str:
date = datetime.datetime.strptime(date_time,"%Y-%m-%d")
else:
date = date_time
week_day_dict = {
0 : u'星期一',1 : u'星期二',2 : u'星期三',
3 : u'星期四',4 : u'星期五',5 : u'星期六',6 : u'星期天'
}
day = date.weekday()
return week_day_dict[day]
(4)打包,cmd命令行切换到脚本所在目录,输入 python setup.py install
(5)验证
sublime 和jupter-notebool里面展现出来的结果都箱单完美,打包、安装大功告成。
2、卸载
找到在对应目录删除该文件即可
3、最粗暴的方法
前面我们删除包,是找到对应目录删除,那么我们可以不以直接将我们的工具函数文件放到对应的site-packages文件夹下呢?
答案是可以的,我直接把katyusha_utils.py文件放到site-packages文件夹下
效果依然一样
然后又出来个大胆的想法,可不可以直接修改在site-packages文件夹下的katyusha_utils.py文件呢?答案也是可以的
我们先增加一个获取日期间隔天数的函数,直接在site-packages文件夹下的katyusha_utils.py上修改
def get_interval_day(end_time,begin_time):
'''
:param end_time:最晚的天数
:param begin_time: 最早的天数
:return: 时间间隔天数
'''
interval = datetime.datetime.strptime(end_time,'%Y-%m-%d')-datetime.datetime.strptime(begin_time,'%Y-%m-%d')
return interval.days