python格式字符串
来源:互联网 发布:淘宝兼职刷客是真的吗 编辑:程序博客网 时间:2024/06/05 08:15
1、最原始方法“%s”
import xlrdimport cx_Oracleimport timefile = xlrd.open_workbook('4,032 Cells.xls')sheet = file.sheets()[0]nrows = sheet.nrowsncols = sheet.ncols#~ print ncolsprint nrowsfor rownum in range(3,nrows): newlist = sheet.row_values(rownum) #print newlist sql="insert into BP_T_CELL_DATA(BATCHNO,CELLID, SCREENDATE,CAPACITY, IR_TW,OCV_TW)values('%s','%s',TO_DATE('%s 00:00:00', 'YYYY/MM/DD HH24:MI:SS'),'%s','%s','%s');"%(newlist[0],newlist[1],newlist[2],newlist[3],newlist[4],newlist[5]) print sql
缺点:1,字段比较多的时候%s,跟tuple中的个数很难对应,一个频繁碰到的问题:TypeError: not enough arguments for formating string。
2、不利于扩展,若是要添加一个字段,%s以及tuple中的位置必须完全对应。
2、字典的key值对应"%(**)s"
def insert_data(row,lineflag): dic = {} dic["LINE_FLAG"]=lineflag cols =""" referenceid 1, lastupdateon now(), lastupdatedby mabo, createdon now(), createdby Mabotech, active 1, rowversionstamp 1""" for collist in cols.split(","): # print collist colarr = collist.split(" ") # print colarr dic[colarr[4]]=colarr[-1] param = ['MeasurementName', 'MeasurementDescription', 'MeasurementNumber', 'MeasurementStartTime', 'MeasurementVersion', 'TestName', 'ReleaseNumber', 'RunNumber', 'TestcellParameterFile', 'EngineParameterFile', 'TestParameterFile', 'Frequency', 'LastAppendingTime', 'NumberofAppends', 'TestcellID', 'Project', 'EStopChannel', 'CELL_NAME', 'CELL_SITE', 'CELL_TYPE', 'GRAV_DRIFT', 'VISC_DRIFT', 'BARO_DRIFT', 'HUMI_DRIFT', 'EngineStartedRecognitionSpeed', 'EngineIdleMode', 'EngineIdleDynoSP', 'EngineIdleEngSP', 'EngineID', 'EngineSpeedRampLimit', 'EngineTorqueRampLimit', 'EngineThrottleRampLimit', 'EngineAuxRampLimit', 'EngineMaxSpeed', 'EngineMinSpeed', 'EngineMaxTorque', 'EngineMinTorque', 'EngineMaxAux', 'EngineMinAux', 'EngineIdleDynoRampTime', 'EngineIdleEngRampTime', 'APPLICATION_TYPE', 'CPL', 'CPL_REV', 'CUBIC_CAP', 'FUEL_PUMP_CODE', 'FUEL_PUMP_REV', 'FUEL_PUMP_TYPE', 'MODEL', 'TestID', 'XAxisChannelName', 'XAxisIncrementValue', 'XAxisIncrementValueUnit', 'XAxisStartValue', 'XAxisStartValueUnit', 'XAxisType', 'DateTime', 'SPEED', 'PWR_KW', 'TORQUE', 'BSFC', 'FUEL_RATE', 'OIL_FILTER_P', 'BLOWBY_L_P', 'CELL_AIR_T', 'IN_MANIFOLD_L_P', 'SMOKE', 'OPACITY', 'TURBO_TUR_OUT_L_P', 'FUEL_IN_P', 'FUEL_IN_T', 'FUEL_OUT_P', 'FUEL_OUT_T', 'COOLANT_IN_P', 'COOLANT_IN_T', 'COOLANT_OUT_P', 'COOLANT_OUT_T', 'TEST_RUN_NAME', 'TEST_COMPLETE_STATUS'] for i in range(0,len(row)): dic[param[i]]=row[i] # print len(param),len(row) #标准化时间格式 (month,day,yeartime) = dic["MeasurementStartTime"].split('/') # print dic["MeasurementStartTime"] # print month,day,yeartime[:4],yeartime[4:] year = yeartime[:4] daytime = day + yeartime[4:] if len(month)==1: month = '0'+month new_date_patten = '-'.join((year,month,daytime)) # print new_date_patten dic["MeasurementStartTime"] = new_date_patten else: new_date_patten = '-'.join((year,month,daytime)) # print new_date_patten dic["MeasurementStartTime"] = new_date_patten # print dic sql = "insert into gcic_t_csv_data(MeasurementName,MeasurementDescription,MeasurementNumber,MeasurementStartTime,MeasurementVersion,TestName,ReleaseNumber,RunNumber,TestcellParameterFile,EngineParameterFile,TestParameterFile,Frequency,LastAppendingTime,NumberofAppends,TestcellID,Project,EStopChannel,CELL_NAME,CELL_SITE,CELL_TYPE,GRAV_DRIFT,VISC_DRIFT,BARO_DRIFT,HUMI_DRIFT,EngineStartedRecognitionSpeed,EngineIdleMode,EngineIdleDynoSP,EngineIdleEngSP,EngineID,EngineSpeedRampLimit,EngineTorqueRampLimit,EngineThrottleRampLimit,EngineAuxRampLimit,EngineMaxSpeed,EngineMinSpeed,EngineMaxTorque,EngineMinTorque,EngineMaxAux,EngineMinAux,EngineIdleDynoRampTime,EngineIdleEngRampTime,APPLICATION_TYPE,CPL,CPL_REV,CUBIC_CAP,FUEL_PUMP_CODE,FUEL_PUMP_REV,FUEL_PUMP_TYPE,MODEL,TestID,XAxisChannelName,XAxisIncrementValue,XAxisIncrementValueUnit,XAxisStartValue,XAxisStartValueUnit,XAxisType,DateTime,SPEED,PWR_KW,TORQUE,BSFC,FUEL_RATE,OIL_FILTER_P,BLOWBY_L_P,CELL_AIR_T,IN_MANIFOLD_L_P,SMOKE,OPACITY,TURBO_TUR_OUT_L_P,FUEL_IN_P,FUEL_IN_T,FUEL_OUT_P,FUEL_OUT_T,COOLANT_IN_P,COOLANT_IN_T,COOLANT_OUT_P,COOLANT_OUT_T,TEST_RUN_NAME,TEST_COMPLETE_STATUS,LINE_FLAG,referenceid,lastupdateon,lastupdatedby,createdon,createdby,active,rowversionstamp)values('%(MeasurementName)s', '%(MeasurementDescription)s', '%(MeasurementNumber)s', '%(MeasurementStartTime)s', '%(MeasurementVersion)s', '%(TestName)s', '%(ReleaseNumber)s', '%(RunNumber)s', '%(TestcellParameterFile)s', '%(EngineParameterFile)s', '%(TestParameterFile)s', '%(Frequency)s', '%(LastAppendingTime)s', '%(NumberofAppends)s', '%(TestcellID)s', '%(Project)s', '%(EStopChannel)s', '%(CELL_NAME)s', '%(CELL_SITE)s', '%(CELL_TYPE)s', '%(GRAV_DRIFT)s', '%(VISC_DRIFT)s', '%(BARO_DRIFT)s', '%(HUMI_DRIFT)s', '%(EngineStartedRecognitionSpeed)s', '%(EngineIdleMode)s', '%(EngineIdleDynoSP)s', '%(EngineIdleEngSP)s', '%(EngineID)s', '%(EngineSpeedRampLimit)s', '%(EngineTorqueRampLimit)s', '%(EngineThrottleRampLimit)s', '%(EngineAuxRampLimit)s', '%(EngineMaxSpeed)s', '%(EngineMinSpeed)s', '%(EngineMaxTorque)s', '%(EngineMinTorque)s', '%(EngineMaxAux)s', '%(EngineMinAux)s', '%(EngineIdleDynoRampTime)s', '%(EngineIdleEngRampTime)s', '%(APPLICATION_TYPE)s', '%(CPL)s', '%(CPL_REV)s', '%(CUBIC_CAP)s', '%(FUEL_PUMP_CODE)s', '%(FUEL_PUMP_REV)s', '%(FUEL_PUMP_TYPE)s', '%(MODEL)s', '%(TestID)s', '%(XAxisChannelName)s', '%(XAxisIncrementValue)s', '%(XAxisIncrementValueUnit)s', '%(XAxisStartValue)s', '%(XAxisStartValueUnit)s', '%(XAxisType)s', '%(DateTime)s', '%(SPEED)s', '%(PWR_KW)s', '%(TORQUE)s', '%(BSFC)s', '%(FUEL_RATE)s', '%(OIL_FILTER_P)s', '%(BLOWBY_L_P)s', '%(CELL_AIR_T)s', '%(IN_MANIFOLD_L_P)s', '%(SMOKE)s', '%(OPACITY)s', '%(TURBO_TUR_OUT_L_P)s', '%(FUEL_IN_P)s', '%(FUEL_IN_T)s', '%(FUEL_OUT_P)s', '%(FUEL_OUT_T)s', '%(COOLANT_IN_P)s', '%(COOLANT_IN_T)s', '%(COOLANT_OUT_P)s', '%(COOLANT_OUT_T)s', '%(TEST_RUN_NAME)s', '%(TEST_COMPLETE_STATUS)s','%(LINE_FLAG)s','%(referenceid)s', '%(lastupdateon)s', '%(lastupdatedby)s', '%(createdon)s', '%(createdby)s', '%(active)s', '%(rowversionstamp)s')"%dic # import datetime # print datetime.datetime.now() print sql碰到这种情况时,则更能体会到第一种方法的局限。这里只要dic的key值完全包含了sql中的对应字段,这种方式在处理这种复杂数据时,还是比较好用的。
3、str.format()
str = "what i am writing is {}".format('a')或者str = "what i am writing is {0}".format('a')如果要输入{0},则需要使用双括号{{0}}str = "what i am writing is {0} but not {{0}}".format('a')
str = "the word {0} can use three times, once {0}! and again {0}?".format("eric")
也可以是用类似key,value的方式
var = "{a},{b}".format(a='hello',b = 'world')
print("{:.2f}".format(3.1415926))pi = 3.1415926var = "pi= {:.2}".format(pi)
数字格式化
pi = 3.14159print(" pi = %1.2f ", % pi)
摘:
0 0
- python格式字符串
- Python字符串格式转换
- Python字符串格式编辑
- python 格式标记字符串
- python中的格式字符串标识符
- python 时间字符串格式转换
- Python字符串之格式规约
- Python 字符串输出格式总结
- python 的字符串格式判断
- Python生成定长格式的字符串
- Python格式字符串两种方法比较
- python中的字符串格式函数str.format()
- python对json格式字符串的处理
- python中的字符串格式函数str.format()
- Python新型字符串格式漏洞分析
- Python新型字符串格式漏洞分析
- 兄弟连学python》》》format格式字符串
- python中 format格式字符串使用总结
- JavaSE学习 第十三章 Swing基础
- Ganglia汇总监控搭建和配置详解
- v4l2文档之——basic frame IO
- TortoiseSVN客户端重新设置用户名和密码
- v4l2驱动文档之——streaming IO
- python格式字符串
- XP WiN7远程桌面3389多用户登陆补丁及端口修改
- easyUI DataGrid基础
- Android源码之“应用程序界面“分析一( 从settings开始)
- radiobutton 的数据可放在python脚本里读取,便于修改
- v4l2驱动文档之——controls
- 删除jsessionid
- 守望歲月
- TI 达芬奇序列 CMEM模块