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()
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))
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)
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()
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()
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()
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()