aiforge_python/utils.py

94 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import os
import logging
import datetime
import psycopg2
import calendar
def create_logger(log_path):
"""
将日志输出到日志文件和控制台
"""
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(filename)s[%(lineno)d]- %(message)s')
# 创建一个handler用于写入日志文件
file_handler = logging.FileHandler(filename=log_path)
file_handler.setFormatter(formatter)
file_handler.setLevel(logging.INFO)
if file_handler not in logger.handlers:
logger.addHandler(file_handler)
# 创建一个handler用于将日志输出到控制台
console = logging.StreamHandler()
console.setLevel(logging.DEBUG)
console.setFormatter(formatter)
if console not in logger.handlers:
logger.addHandler(console)
return logger
def get_conn():
from config import host, port, database, user, passwd
conn_string = "host=" + host + " port=" + str(port) + " dbname=" + database + " user=" + user + " password=" + passwd
conn = psycopg2.connect(conn_string)
return conn
def get_month_date(year, month):
date_list = []
for i in range(calendar.monthrange(year, month)[1] + 1)[1:]:
str1 = str(year) + '-' + str("%02d" % month) + '-' + str("%02d" % i)
date_list.append(str1)
return date_list
def get_file_name(fname):
"""
获取文件名
"""
return os.path.split(fname)[-1].split(".")[0]
def get_file_size(fname):
"""
获取文件大小MB
"""
fsize = os.path.getsize(fname)
fsize = fsize/float(1024 * 1024)
return round(fsize, 2)
def get_before_date(n):
"""
获取前N天的日期
"""
today = datetime.datetime.now()
# 计算偏移量
offset = datetime.timedelta(days=-n)
re_date = (today + offset).strftime('%Y-%m-%d')
return re_date
def compare_date(date1, date2):
return date1 < date2
def get_between_dates(begin_date_str, end_date_str):
date_list = []
begin_date = datetime.datetime.strptime(begin_date_str, "%Y-%m-%d")
end_date = datetime.datetime.strptime(end_date_str, "%Y-%m-%d")
while begin_date < end_date:
begin_date += datetime.timedelta(days=1)
date_list.append(begin_date.strftime('%Y-%m-%d'))
return date_list
if __name__ == '__main__':
# print(get_before_date(60))
# print(compare_date('2023-01-05', '2023-01-03'))
print(get_between_dates('2023-02-09', '2023-03-04'))