zoukankan      html  css  js  c++  java
  • 生成pcf文件

    import os
    import datetime
    import hashlib
    
    
    def checksum(filename):
        with open(filename, mode='rb') as f:
            d = hashlib.md5()
            while True:
                buf = f.read(128)
                if not buf:
                    break
                d.update(buf)
            return d.hexdigest()
    
    if __name__ == "__main__":
    
        week = int(datetime.date.today().strftime("%w"))
    
        if week in {6, 0}:
            print(week)
    
        nextdate = datetime.date.today() + datetime.timedelta(days=1)
        if week == 5:
            nextdate = datetime.date.today() + datetime.timedelta(days=3)
    
        PreTradingDay = datetime.date.today().strftime('%Y%m%d')
        TradingDay = nextdate.strftime('%Y%m%d')
    
        #PreTradingDay = '20191030'
        #TradingDay = '20191031'
    
        print(PreTradingDay)
        print(TradingDay)
    
        path = 'D:/data/pcf'
        template = 'fm006etfd20191104001.txt'
        pcftemp = os.path.join(path, template)
    
        template = 'fm006etfd20191104001.flg'
        flagtemp = os.path.join(path, template)
    
        pcfname = 'fm006etfd' + TradingDay +'001.txt'
        flagname = 'fm006etfd' + TradingDay + '001.flg'
    
        pcffile = os.path.join(path, pcfname)
        flagfile = os.path.join(path, flagname)
    
        print(pcffile)
        print(flagfile)
    
    
        f = open(pcftemp, mode='r', encoding='GBK',newline='
    ')
        f_new = open(pcffile, mode="w+", encoding='GBK',newline='
    ')
    
        for line in f:
            if '20191104' in line:
                line = line.replace('20191104', TradingDay)
                line = line.replace('20191101', PreTradingDay)
            f_new.write(line)
            f_new.flush()
        f.close()
        f_new.close()
    
        stat = os.stat(pcffile)
        FileName = pcfname
        FileDate = str(TradingDay)
        FileTime = str(datetime.datetime.fromtimestamp(stat.st_mtime).strftime("%H%M%S"))
        FileBytes = str(stat.st_size)
        CheckSum = checksum(pcffile)
    
        f = open(flagtemp, mode='r', encoding='GBK',newline='
    ')
        f_new = open(flagfile, mode="w+", encoding='GBK',newline='
    ')
    
        for line in f:
            if 'fm006etfd20191104001' in line:
                line = line.replace('fm006etfd20191104001.txt', FileName)
                line = line.replace('2945', FileBytes)
                line = line.replace('20191104', FileDate)
                line = line.replace('210000', FileTime)
                line = line.replace('5362833CC3437FEC33E69D0FD0287176', CheckSum)
                print(line)
    
            f_new.write(line)
            f_new.flush()
        f.close()
        f_new.close()
        
    

      

  • 相关阅读:
    boost库学习笔记
    boost::bind时候注意性能问题
    Boost线程库学习笔记
    查看linux硬件信息大全
    WPF选择.NET Framework 4 Client Profile提示找不到名字空间
    实战第一个云程序(转)
    ASP.NET那点不为人知的事(一)
    win7中删除桌面删不掉的IE图标方法
    3D打印机(3D Printers)
    360把加壳的程序都报木马
  • 原文地址:https://www.cnblogs.com/timlong/p/11850920.html
Copyright © 2011-2022 走看看