1.获取输入时间段内的所有时间列表
import datetime
def get_every_day(start, end):
"""
:param start: str
:param end: str
:return:
"""
if not start:
start = "2021-01-01"
if not end:
end = datetime.datetime.today().strftime("%Y-%m-%d")
data = []
start_time = datetime.datetime.strptime(start, "%Y-%m-%d")
end_time = datetime.datetime.strptime(end, "%Y-%m-%d")
while start_time <= end_time:
date_str = start_time.strftime("%Y-%m-%d")
data.append(date_str)
start_time += datetime.timedelta(days=1)
return data
2.获取文件目录,新建,删除文件及文件夹
import os
# 获取文件所在目录
parent_dir = os.path.abspath(os.path.dirname(__file__))
# 拼接文件目录
file_dir = os.path.join(parent_dir, "file_name.json")
# 根据文件路径删除文件
finally:
# 如果存在此路径,则进行删除,locals()是一个字典,存储本模块中的变量等
file_dir = locals().get("file_dir")
if os.path.exists(file_dir):
os.remove(file_dir)
parent_path = os.path.abspath(os.path.dirname(__file__))
# 拼接temp文件夹路径
folder_path = os.path.join(parent_path, "temp")
# 创建文件目录
if not os.path.exists(folder_path):
os.mkdir(folder_path)
file_path = os.path.join(folder_path, "__init__.py")
# 写入空文件
with open(file_path, "w"):
pass
3.数据手动分页
# 当前页
page_num = data.get("page_num", 1)
# 当前页数据条数
page_size = data.get("page_size", 10)
# 数据分页
start = (page_num - 1) * page_size
end = start + page_size
# 数据总条数
total = len(total_data)
split_data = total_data[start:end]
4.pandas存储为excel文件
import numpy as np
import pandas as pd
form_headers = ["表头1", "表头2"]
# 根据表头设置的每行的数据
table_data = [["数据1", "数据2"], ["数据1", "数据2"], ["数据1", "数据2"]]
table_data = np.array(table_data_res)
pf = pd.DataFrame(data=table_data, columns=form_headers)
# DataFrame有前置索引列,关闭即可
pf.to_excel(f"{file_dir}", index=False)
5.[{}, {}, {}, …]根据某个字段去重
def deduplicate_data(data,key):
ret = [] # 用于存储去重后的list
values = [] # 用于存储当前已有的值
for d in data:
if d[key] not in values:
ret.append(d)
values.append(d[key])
return ret
s = [{"a":1, "b": "c"}, {"a":1, "b": "e"}, {"a":6, "b": "w"}]
r = deduplicate_data(s, "a")
=> [{'a': 1, 'b': 'c'}, {'a': 6, 'b': 'w'}]
6.时间对象与时间字符串互相转换(待定。。。)
today = datetime.datetime.today()
today_str = datetime.datetime.strftime(today, "%Y-%m-%d")
days_ago = today - datetime.timedelta(days=3)
days_ago_str = datetime.datetime.strftime(days_ago, "%Y-%m-%d")
# 将时间戳转化为字符串时间
datetime.strftime(datetime.fromtimestamp(int(str(date[0])[:-3])), '%Y-%m-%d')