当前位置: 首页 > 后端技术 > Python

pthon上传文件

时间:2023-03-26 19:34:26 Python

casedeftest_dmc_dataflow_export_model(self):t1=Table.from_lines(["utf8100100,value,汉字,str","n1,1,一,"+str(time.time()),"n2,0,二"+str(time.time()),],1)t1.wait_for_ok()df=数据流(dmc_request=1)base_node=df.create_base_node(t1)selectNode=df.create_select_node([base_node.key],status=0)selectNode.add_select_fields(["value"])df.add_node(selectNode)df.create_output_node([selectNode.key])model_name='model_import_or_export_'+str(time.time()).split('.')[0]df.save_dataflow(model_name)如果os.path.exists(bdpconf.DOWNLOAD_DIR+model_name+'.model'):os.remove(bdpconf.DOWNLOAD_DIR+model_name+'.model')df.export_dataflow(df.dataflow_id)assertos.path.exists(bdpconf.DOWNLOAD_DIR+model_name+'.model')im_df=df.import_dataflow(bdpconf.DOWNLOAD_DIR+model_name+'.model')assertim_df["name"]==model_nameim_df_id=im_df["dataflow_id"]#清空数据df.delete()BdpSDK.instance().call_method_and_succ("delete_dataflow",im_df_id,1)调用defimport_dataflow(self,file):returnBdpSDK.instance().call_method_and_succ("import_dataflow",file,self.dmc_request,ret_expr='["result"]')接口定义defimport_dataflow(self,file,dmc_request=None):ifhasattr(file,“读取”):filename=file.filenamefp=fileelse:filename=os.path.basename(file)fp=open(file)boundary=''.join(random.sample('abcdefgABCDEFG1234567',16))数据=list()data.append("--%s"%boundary)data.append('Content-Disposition:form-data;name="dmc_request"\r\n')data.append(str(0ifdmc_request==没有别的dmc_request))data.append("--%s"%boundary)data.append('Content-Disposition:form-data;name="data";filename="%s"'%filename)data.append('Content-Type:application/octet-stream\r\n')data.append(fp.read())fp.close()data.append("--%s--\r\n"%boundary)self.raw_data=self.http_request.post(self.build_url(BdpSDK.api_dataflow_import),'\r\n'.join(data),headers={"内容-Type":'multipart/form-data;boundary=%s'%boundary}).read()@dec_log()defexport_dataflow(self,dataflow_id,dmc_request):req_param={"dataflow_id":dataflow_id,"dmc_request":0如果dmc_request==没有其他dmc_request}req_url=self.build_url(self.api_dataflow_export,req_param)raw_resp=self.http_request.get(req_url)content_len=int(raw_resp.headers["Content-Length"])content_disp=raw_resp.headers["Content-Disposition"]content_dict={}foriincontent_disp.split(';'):try:k,v=i.split('=')除了:k,v="",""ifk:content_dict[k.strip()]=v.strip().strip('"')local_file=content_dict["filename"]fp=open("%s/%s"%(bdpconf.DOWNLOAD_DIR,local_file),"wb")foriinraw_resp.iter_content(chunk_size=4096):fp.write(i)assertfp.tell()==content_lenfp.close()