我想修改一些文本文件。但是我的脚本太长了。怎样才能使文字输出变得轻松简单?
怎么可以做得短?谁可以建议我的剧本。
我想制作循环acap = line[4] ucap = line[5] ucp = line[6] saved = line[8]
值如tcap
。
下面是我的脚本。
with open("find_c_volume_show.txt", "r") as f:
for line in f:
if "%" in line:
line = line.split(',')
vser = line[0]
vol = line[1]
aggr = line[2]
node = line[7]
if 'TB' in line[3]:
tcap = str(line[3].split("TB")[0])
tcap = float(tcap) if '.' in tcap else int(tcap)
elif 'GB' in line[3]:
tcap = str(line[3].split("GB")[0])
tcap = (float(tcap) if '.' in tcap else int(tcap) /1024)
elif 'MB' in line[3]:
tcap = str(line[3].split("MB")[0])
tcap = (float(tcap) if '.' in tcap else int(tcap) /1024 /1024)
elif 'KB' in line[3]:
tcap = str(line[3].split("KB")[0])
tcap = (float(tcap) if '.' in tcap else int(tcap) /1024 /1024 /1024)
elif 'B' in line[3]:
tcap = str(line[3].split("B")[0])
tcap = (float(tcap) if '.' in tcap else int(tcap) /1024 /1024 /1024 /1024)
else:
print ("Please check script.")
if 'TB' in line[4]:
acap = str(line[4].split("TB")[0])
acap = float(acap) if '.' in acap else int(tcap)
elif 'GB' in line[4]:
acap = str(line[4].split("GB")[0])
acap = (float(acap) if '.' in acap else int(tcap) /1024)
elif 'MB' in line[4]:
acap = str(line[4].split("MB")[0])
acap = (float(acap) if '.' in acap else int(tcap) /1024 /1024)
elif 'KB' in line[4]:
acap = str(line[4].split("KB")[0])
acap = (float(acap) if '.' in acap else int(tcap) /1024 /1024 /1024)
elif 'B' in line[4]:
acap = str(line[4].split("B")[0])
acap = (float(acap) if '.' in acap else int(tcap) /1024 /1024 /1024 /1024)
else:
print ("Please check script.")
if 'TB' in line[5]:
ucap = str(line[5].split("TB")[0])
.....
if 'TB' in line[6]:
ucp = str(line[6].split("TB")[0])
.....
if 'TB' in line[8]:
saved = str(line[8].split("TB")[0])
.....
line = vser, vol, aggr, tcap, acap, ucap, ucp, saved
print (line)
我想在文本中匹配TB容量格式。下面是 是我的文本文件。
Vserver,Volume,Aggregate,Total,Avail,Used,UsedP,Node,Saved
FAS8040-ZZZZ,vol0,Node1_aggr0,466.6GB,436.0KB,30.60MB,6%,FAS8040-ZZZZ,0B
FAS8040-YYYY,vol0,Node2_aggr0,46.6GB,428.6KB,38.07B,8%,FAS8040-YYYY,23KB
FAS8040-XXXX,vol0,Node1_aggr0,466GB,436.0GB,30.60GB,6%,FAS8040-XXXX,44GB
FAS8040-AAAA,vol0,Node2_aggr0,466.6TB,428.6MB,38.07MB,8%,FAS8040-AAAA,102MB
'elif的 'GB':',你的意思'elif的 'GB' 本着[3]:'? – cdarke
太长了?这是30行,这是什么问题? – JulienD
当你说你的脚本太长,你的意思是太多的代码行,或者你的意思是它太慢? – cdarke