我在csv文件中有多行,每行都看起来像这样
0.10089;0;0;1;0;0;0;0;0;0;-0.9;-0.35;999999;0;0;0;80;81.226;158.25;0;
我必须将值-0.9
,-0.35
和999999
替换为2*
这些值,-0.9
变为-1.8
... < / p>
我已经声明了一个数组sc_pos_array
,它存储了每个line
中出现的所有分号的索引
sc_pos_array = [i for i,x in enumerate(line) if x == ';']
我知道值0.9
出现在10th
分号之后,我知道来自10th
的{{1}}分号的索引。要访问sc_pos_array[9]
,我会写
0.9
但这似乎不起作用。我正在以下line[sc_pos_array[9]+1]:line[sc_pos_array[10]]
循环
for
答案 0 :(得分:0)
要访问值0.9:
line[sc_pos_array[9]+1 : sc_pos_array[10]]
以下代码替换值-0.9并将其2x值替换为字符串:
line = line[0:sc_pos_array[9] + 1] + str(2 * float(line[sc_pos_array[9]+1 : sc_pos_array[10]])) + line[sc_pos_array[10]:]
print line
因此输出为:
'0.10089;0;0;1;0;0;0;0;0;0-1.8;-0.35;999999;0;0;0;80;81.226;158.25;0;'