Exemple #1
0
def fileSplit( filename ,title,tgrRoot,map1 ):
    ID=0
    map0 =[]
    for i in map1:
        j = i.replace( " ","");
        # print(j)
        map0 += [j]
    curfile=None
    ofilename=""
    for line in basicLib.openfile(filename,"rt",encoding="UTF8"):
        line1 = line.replace(" ","").replace("\r\n","").replace("\n","")
        # if line1 == map0[ 0 ]  or line1 == map0[1 ] :
        #     print(line1 ,map0[0 ])
        if line1 == map0[ 0 ]:
            ID = ID+1
            ofilename= "{:}{:}/{}{}{:04d}.py1".format(tgrRoot,map0[1],title,map0[2]  ,ID)
            if curfile != None:
                curfile.close()
            curfile=basicLib.openfile( ofilename ,"wt",encoding="UTF8")
        if line1 == map0[3]:
            ID = ID+1
            ofilename= "{:}{:}/{}{}{:04d}.py1".format(tgrRoot,map0[4],title,map0[5],ID)
            if curfile != None:
                curfile.close()
            curfile=basicLib.openfile( ofilename ,"wt",encoding="UTF8") 
        #print(ofilename,curfile)

        if  curfile != None:
            if "aObj=" in line1 or "gloProc.push(" in line1 or "aObj.状态=" in line1  or "aObj.序号=" in line1:
                pass
            else:
                line2=line.replace("\r\n","").replace("\n","")
                print(line2,file=curfile )
def transferGB2312_TO_UTF8SigFile(SrcFile,TgrFilename):
    csv_file= csv.reader( basicLib.openfile(SrcFile,"r") )
    UTF8fileObj = basicLib.openfile(TgrFilename,"w",encoding="utf-8-sig")

    for line in csv_file:
        print(line)
        for col in line: #[0:end]:
            print( col,end=",", file= UTF8fileObj)
        print(file= UTF8fileObj )
    UTF8fileObj.close()
Exemple #3
0
def fileGen( curfile ,pathcur1,curfilename,map1,状态,财务类型):
    if curfilename[-4:] != ".py1":
        return
    # print( curfilename )        
    print("","\r\n",file=curfile )
    print("######################","\r\n",file=curfile )
    print("    ",end="",file=curfile )
    if 财务类型 == map1[1] :
        print(map1[0],file=curfile )
        #print(财务类型,map1[0])
    elif 财务类型 == map1[3] :
        print(map1[2],file=curfile );#print(财务类型,map1[2])
    elif 财务类型 == map1[5] :
        print(map1[4],file=curfile );#print(财务类型,map1[4])
    elif 财务类型 == map1[7] :
        print(map1[6],file=curfile );#print(财务类型,map1[6])
    elif 财务类型 == map1[9] :
        print(map1[8],file=curfile );#print(财务类型,map1[8])
    elif 财务类型 == map1[11] :
        print(map1[10],file=curfile ) ;#print(财务类型,map1[10])                           
    elif 财务类型 == map1[13] :
        print(map1[12],file=curfile ) ;#print(财务类型,map1[12])
    elif 财务类型 == map1[15] :
        print(map1[14],file=curfile ) ;#print(财务类型,map1[12])
    elif 财务类型 == map1[17] :
        print(map1[16],file=curfile ) ;#print(财务类型,map1[12])  
    elif 财务类型 == map1[19] :
        print(map1[18],file=curfile ) ;#print(财务类型,map1[12])         
    elif 财务类型 == map1[21] :
        print(map1[20],file=curfile ) ;#print(财务类型,map1[12]) 
    elif 财务类型 == map1[23] :
        print(map1[22],file=curfile ) ;#print(财务类型,map1[12]) 
    else:

        print(财务类型 )
        ##Error
        pass

    print("    aObj.状态 ='{}'".format(状态),file=curfile ) 
    print("    aObj.序号 ='{}'".format(curfilename),file=curfile ) 
    folder = os.path.abspath(pathcur1)
    print("    aObj.folder =r'''{}'''".format( folder.replace("\\","/") ),file=curfile )
    # print("    aObj.folder ='{}'".format( folder ) )    
    # print(folder)
    for line in basicLib.openfile(pathcur1,"rt", encoding="UTF8"):
        line1 = line.replace("\r\n","").replace("\n","").replace(" ","")
        if line1 !="":
            specialHead= "aObj.税率="
            l1 = len(specialHead )
            if line1[:l1] == specialHead : #and line1[l1:l1+1].isnumeric():
                税率str= line1[l1:]
                税率str= 税率str.replace("/","*1.0/").replace("'","").replace("\r","").replace("\n","") #+ "'"
                # print("-{:};".format(税率str))
                税率 = float( str(eval(税率str)) )

                line= specialHead +""+str(税率)+"\n"
                # print( line1,税率str,税率,"=>",line )
            print("    "+line,end="",file=curfile )
    print("    gloProc.push( aObj); ",file=curfile )
def readpickle(dbname=glbcfg.Py1fileRootFolder + "/Gened/pickleDB"):
    return
    data1 = []
    import pickle
    with basicLib.openfile(dbname, 'rb') as f:
        # The protocol version used is detected automatically, so we do not
        # have to specify it.
        data1 = pickle.load(f)
    print("data count in pickle >..", len(data1))
Exemple #5
0
def procPy1File(datafolder, statusfolder, caiwuFolder, filename, Newstr):
    fullname = os.path.join(datafolder, statusfolder, caiwuFolder, filename)
    if not os.path.exists(fullname):
        return
    if filename[-3:].upper() == "PY1":
        py1_file = basicLib.openfile(fullname, "a", encoding="utf-8-sig")
        # UTF8fileObj = basicLib.openfile(TgrFilename,"w",encoding="utf-8-sig")
        # for line in py1_file:
        #     print(line)
        data = "aObj.关联销售合同名称" + " ='" + Newstr + "'"
        print(data, file=py1_file)
        py1_file.close()
        ## read files
        py1_file = basicLib.openfile(fullname, "r", encoding="utf-8-sig")
        # UTF8fileObj = basicLib.openfile(TgrFilename,"w",encoding="utf-8-sig")
        for line in py1_file:
            print(line)
        # data = "aObj.关联销售合同名称"+ " ='" + Newstr + "'"
        # print( data,file=py1_file )
        py1_file.close()
def savePickle(dbname=glbcfg.Py1fileRootFolder + "/Gened/pickleDB"):
    return
    print("Start, Save to Pickle:", dbname)
    global datasObj
    global dataDic
    import pickle
    print("write to pickle DB")
    with basicLib.openfile(dbname, "wb") as fileobj:
        print(fileobj, "write ....")
        pickle.dump(dataDic, fileobj, pickle.HIGHEST_PROTOCOL)
    print("End, Save to Pickle:", dbname)
Exemple #7
0
def readinCsvFile(rootfolder, SrcFile):
    fullname = os.path.join(rootfolder, SrcFile)
    csv_file = csv.reader(basicLib.openfile(fullname, "r"))
    # UTF8fileObj = basicLib.openfile(TgrFilename,"w",encoding="utf-8-sig")
    cnt = 1
    for cols in csv_file:
        print(cols)
        # cols =line.split(  ",")
        procPy1File("D:\\Log\\datalib", cols[2], cols[0], cols[3], cols[1])
        cnt = cnt + 1
        if cnt > 500000:
            sys.exit()
Exemple #8
0
def files(tgrRoot,tgrFileName,map1,subfolders=[]):
    curfile= basicLib.openfile( tgrFileName ,"wt" ,encoding="UTF8")
    print(titles, file=curfile )
    if len(subfolders) == 0:
        iterSubs(tgrRoot,"",map1,curfile)
    for subfolder in subfolders:
        iterSubs(tgrRoot,subfolder,map1,curfile)


    print("    return gloProc\n",file =curfile )
    print("gloProc=update()\n",file =curfile )
    
    curfile.close()                 
Exemple #9
0
def fileGenHetong(curfile, pathcur1, curfilename):
    for line in basicLib.openfile(pathcur1, "rt", encoding="UTF8"):
        line1 = line.replace("\r\n", "").replace("\n", "").replace(" ", "")
        line1 = line1.replace("aObj.发票总金额", "aObj.金额")
        line1 = line1.replace("aObj.交易总金额", "aObj.金额")
        line1 = line1.replace("aObj.发票含税总额", "aObj.金额")

        line1 = line1.replace("aObj.签署日期", "aObj.发生日期")
        line1 = line1.replace("aObj.发票日期", "aObj.发生日期")
        line1 = line1.replace("aObj.交易日期", "aObj.发生日期")

        line1 = line1.strip()

        print(line1, end="\n", file=curfile)
def fileGenHetong(curfile, pathcur1, curfilename):
    for line in basicLib.openfile(pathcur1, "rt", encoding="UTF8"):
        line1 = line.replace("\r\n", "").replace("\n", "").replace(" ", "")
        if line1 != "":
            if "aObj.合同子类" == line[:9]:
                line2 = line.replace("aObj.合同子类 = 合同子类Cls.",
                                     "aObj.费用子类 = 费用子类Cls.")
                print(line2, end="", file=curfile)
                print("aObj.合同子类 = 合同子类Cls.主合同", end="\n", file=curfile)
                continue
            if "发票总金额" == line[:5]:
                print(line, end="", file=curfile)
                print("aObj.发票总金额fn = 发票总金额", end="\n", file=curfile)
                continue
            print(line, end="", file=curfile)
def files(tgrRoot, fileGen=fileGenHetong):
    # print( tgrRoot )
    for root1, paths1, files1 in os.walk(tgrRoot,
                                         topdown=True,
                                         onerror=None,
                                         followlinks=False):
        # print( files1 ,root1)
        for curfilename in files1:
            print(curfilename, "\r\n")
            tgrFileName = curfilename.replace(".py2", ".py1")
            tgrfn = os.path.join(root1, tgrFileName)
            curfileobj = basicLib.openfile(tgrfn, "wt", encoding="UTF8")
            pathcur1 = os.path.join(root1, curfilename)
            fileGen(curfileobj, pathcur1, curfilename)
            curfileobj.close()
        break
    def updateVobHIstoryLog(this,vobFolder):
        # glbRecentVobsFileName            
        if vobFolder == None:
            return 
        values = this.getDocFiles(glbRecentVobsFileName)

        newFolders=[ vobFolder ]
        for i in range(len(values)-1,-1,-1):
            item  = values[ i ]
            folder = item.replace("\\","/").strip()
            if folder not in newFolders:
                newFolders =  [folder] + newFolders

        fobj = basicLib.openfile(glbRecentVobsFileName,"wt")
        for i in range(0,len( newFolders) ):
            print( newFolders[i] ,file=fobj )
        fobj.close()  
    def SaveDocFolder2VOBreg(self):
        # self.VobRegFilename
        # sourceFolderRela
        if self.DocFolder == None:
            return 
        values = self.getDocFiles(self.VobRegFilename)

        newFolders=[  self.DocFolder  ]
        for i in range(len(values)-1,-1,-1):
            item  = values[ i ]
            folder = item.replace("\\","/").strip()
            if folder not in newFolders:
                newFolders =  [folder] + newFolders

        fobj = basicLib.openfile(self.VobRegFilename,"wt")
        for i in range(0,len( newFolders) ):
            print( newFolders[i] ,file=fobj )
        fobj.close()
 def Save2Filepy1(self, str1):
     global isDirty
     try:
         fullname = self.folder
     except:
         self.folder = ""
         fullname = os.path.join(glbcfg.Py1fileRootFolder, "新增datas",
                                 self.状态, self.getFNstr(), self.序号)
     print("::", fullname, "--", self.folder)
     # fullname = self.folder
     supermkdirs(fullname)
     with basicLib.openfile(fullname, "wt", encoding="UTF8") as fo:
         print(str1, file=fo)
     pass
     isDirty = True
     print(" Save to file ok:", fullname)
     self.Save2MemDict()
     print(" Save to Mem Dicr ok:")
     isDirty = False
     Save2DataDB()
Exemple #15
0
def files(tgrRoot, fileGen):
    print(tgrRoot)
    for root1, paths1, files1 in os.walk(tgrRoot,
                                         topdown=True,
                                         followlinks=False):
        # print( root1 )
        roottgr = root1.replace("后期datas-test", "后期datas")
        # print( roottgr )

        for curfilename in files1:
            # print(curfilename,"\r\n")
            ext = curfilename[-4:]
            ext = ext.upper()
            # print( ext )
            if ext == ".PY1":
                tgrFileName = curfilename
                tgrfn = os.path.join(roottgr, tgrFileName)
                curfileobj = basicLib.openfile(tgrfn, "wt", encoding="UTF8")
                pathcur1 = os.path.join(root1, curfilename)
                fileGen(curfileobj, pathcur1, curfilename)
                curfileobj.close()
                print(tgrFileName)
    def getDocFiles(self,VOBRegFile ):
        try:
            f1obj =basicLib.openfile(VOBRegFile  ,"rt")
        except:
            f1obj = None
            return ()
        values = []
        for line in f1obj:
            # print(line )
            values += [line.replace("\r","").replace("\n","") ]

        vs =()
        ll = len( values )
        if ll == 0:
             return vs
        for idx in range( ll-1, -1,-1):
            v = values[idx ]
            if v not in vs:
                vs = (v,)+ vs
        for d in vs:
            print(d)

        return vs 
def Save2DataDB(filename=glbcfg.Py1fileRootFolder + "/Gened/datadb.py"):
    global dataDic
    pass
    print(" Save2DataDB  ")
    tempfile = glbcfg.Py1fileRootFolder + "Gened/oooooooooo.py"
    try:
        with basicLib.openfile(tempfile, "wt", encoding="UTF8") as fileobj:
            print(titles, file=fileobj)
            for dataobj in dataDic:
                if dataobj.is名附实():
                    str1 = dataobj.getbasicdataStr()
                    # print(str1 ,"++++++++++++++++++++++++tempfile++++++++++++++--------1--------",tempfile ,dataobj.__class__.__name__)
                    print(str1, file=fileobj)
                    # print(str1 ,"++++++++++++++++++++++++tempfile++++++++++++++--------1.1--------")
                    str1 = dataobj.toStr()
                    # print(str1 ,"++++++++++++++++++++++++++++++++++++++--------2--------")
                    print(str1, file=fileobj)
                    str1 = "gloProc.push( aObj);" + "\n"
                    # print(str1 ,"++++++++++++++++++++++++++++++++++++++--------3--------")
                    print(str1, file=fileobj)

                # print(dataobj.__class__.__name__,"++++++++++++++++++++++++++++++++++++++OK?? 4")
                # return
    except:
        pass
        print("Save db file Error", tempfile)
        return
    finally:
        pass
        # fileobj.close()
    try:
        if os.path.exists(filename):
            os.remove(filename)
        os.rename(tempfile, filename)
    except:
        print("Error happened")
    savePickle()