gpt4 book ai didi

python - 如何在 python 上工作输出?

转载 作者:行者123 更新时间:2023-11-30 22:32:45 24 4
gpt4 key购买 nike

我想制作一个用于修改存储容量的脚本,但我遇到了一些问题。

我的脚本有以下错误:

Traceback (most recent call last):
File "test.py", line 20, in <module>
mod_f.write(','.join(line) + '\n')
TypeError: sequence item 3: expected string, float found

下面是我的脚本。

mod_f = open("mod_c_vol_size.txt", 'w')
mod_f.write("Vserver,Volume,Aggregate,Total,Avail,Node,SaveA,SaveD,SaveC,Snap,Tused\n")
unit = ['TB', 'GB', 'MB', 'KB', 'B']
with open("find_c_vol_modify.txt", "r") as f:
next(f)
for line in f:
if len(line.strip()) != 0:
line = line.split(',')
out = []
for l in line[3:5] + line[6:11]:
l = l.replace('\n','')
try:
ind = [unit[i] in l for i in range(5)].index(True)
except ValueError:
print('please check script')

val = str(l.split(unit[ind])[0])
out.append(float(val)/1024**ind)
line = line[0:3] + out[:-5] + line[5:6] + out[2:]
print (line)
mod_f.write(','.join(line) + '\n')
mod_f.close()

错误位于行 mod_f.write(','.join(line) + '\n')

下面是我的输入文本文件。

Vserver,Volume,Aggregate,Total,Avail,Node,SaveA,SaveD,SaveC,Snap,Tused
XXXX,YYYY,Node1_aggr1,1TB,1023GB,FAS8040-ZZZZ,0B,0B,0B,0B,177.7MB
XXXX,ZZZZ,Node1_aggr1,3TB,3.00TB,FAS8040-ZZZZ,0B,0B,0B,0B,1.60GB
XXXX,CCCC,Node1_aggr1,1TB,907.9GB,FAS8040-ZZZZ,0B,0B,0B,0B,116.1GB
XXXX,VVVV,Node1_aggr1,200GB,200.0GB,FAS8040-ZZZZ,0B,0B,0B,0B,6.25MB

下面是预期的输出文件。

['XXXX', 'YYYY', 'Node1_aggr1', 1.0, 0.9990234375, 'FAS8040-ZZZZ', 0.0, 0.0, 0.0, 0.0, 0.00016946792602539061]
['XXXX', 'ZZZZ', 'Node1_aggr1', 3.0, 3.0, 'FAS8040-ZZZZ', 0.0, 0.0, 0.0, 0.0, 0.0015625]
['XXXX', 'CCCC', 'Node1_aggr1', 1.0, 0.88662109375, 'FAS8040-ZZZZ', 0.0, 0.0, 0.0, 0.0, 0.11337890625]
['XXXX', 'VVVV', 'Node1_aggr1', 0.1953125, 0.1953125, 'FAS8040-ZZZZ', 0.0, 0.0, 0.0, 0.0, 5.9604644775390625e-06]

最佳答案

每个 line 列表中的第四项是您计算的 float 元素:1.0, 3.0, 1.0, 0.1953125(如下所示)元素)。 join 仅适用于字符串。您需要将 float 项转换为 string 。也许

out.append(str(float(val)/1024**ind))

或者在你写之前的一些概括

line = [str(item) for item in line]

关于python - 如何在 python 上工作输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45363175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com