人行利率报备项目之文件处理逻辑(4-3)

本文详细介绍了人行利率报备项目中涉及的文件处理逻辑,包括文件的读取、解析、验证及存储等关键步骤,旨在帮助读者理解该项目中的核心操作流程。
摘要由CSDN通过智能技术生成
#!/usr/bin/env python
# coding: utf-8

# ## 1.导入所需的资源包

import base64
import datetime
import getopt
import os
import sys
import zipfile
#import paramiko
import shutil
from xml.dom.minidom import Document

# ## 2.准备工作,辅助函数
# ### 2.1 设置一些全局配置参数
REMOTE = True

# 设置编码格式
ENCODING = "utf-8"

# 操作日期目录,默认为 T-1 日
default_date = (datetime.datetime.now() + datetime.timedelta(days=-1)).strftime("%Y%m%d")
DATE_DIR = "./%s/" % default_date

BASE_PATH = "/app/interrate_report/data/" + DATE_DIR

REPORT_FLAG = "FTRT"

# 报送标识,默认为 FTRT,首次报送; 
# 参数:ALRT 为重新报送所有分片;
# 参数:CTRT 为重新报送指定分片,无此类报送需求;

BANKCODE = "D7001661000018"  # 机构代码
REPORT_MODE = "FTRT"
SEPARATE_SIZE = 1000  # 初始约定1000条以内为一个数据包,运算过程中动态调整

# 根据调用脚本的命令行参数调整配置
opts, args = getopt.getopt(sys.argv[1:], 'hm:d:', ['help', 'mode=', 'bizdate='])
for opt_name, opt_value in opts:
    if opt_name in ('-h', '--help'):
        print("请关注以下信息:")
        print("\t-h, --help \t\t 展示帮助信息")
        print("\t-m, --mode \t 指定报送模式 (FTRT:首次报送 ALRT;重新报送所有数据, 默认为 FTRT)")
        print("\t-d, --bizdate \t 指定待报送数据的日期 (默认为 T-1)")
        print("\n使用范例:")
        print("使用默认配置执行>>>  python interrate_report.py")
        print("指定报送模式执行>>>  python interrate_report.py --mode=FTRT")
        print("指定报送日期执行>>>  python interrate_report.py --bizdate=%s" % default_date)
        print("指定报送模式和日期执行>>>  python interrate_report.py --mode=ALRT --bizdate=%s" % default_date)
        exit()
    if opt_name in ('-m', '--mode'):
        flag = opt_value.upper()
        if flag in ('FTRT', 'ALRT'):
            REPORT_MODE = flag
        else:
            print("请指定正确的报送模式 (FTRT:首次报送|ALRT:重新报送): " + flag)
            exit()
    if opt_name in ('-d', '--bizdate'):
        rdate = opt_value
        if len(rdate) == 8 and 0 < int(rdate) < 20991231:
            BASE_PATH = "/app/interrate_report/data/%s/" % rdate
        else:
            print("请指定正确的报送日期: " + rdate)
            exit()

if REPORT_MODE == "FTRT":
    # 原始文件目录
    SOURCE_DIR = BASE_PATH + "ADATA/"
    # 拆分文件目录
    SEPARATE_DIR = BASE_PATH + "ftrt_sharding/"
    # 统计文件目录
    STATISTIC_DIR = BASE_PATH + "ftrt_statistiIc/"
    # 待转码的压缩文件目录
    ZIP_FOR_BASE64_DIR = BASE_PATH + "ftrt_zip_origin/"
    # xml文件目录
    XML_DIR = BASE_PATH + "ftrt_xml/"
    # zip文件目录
    ZIP_DIR = BASE_PATH + "ftrt_report/"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值