合并名称和数字保存修复金额

时间:2017-07-25 20:48:17

标签: python python-2.7

我对一些代码感到困扰。我正在通过添加一个列并调用分隔符来读取CSV文件。

这一切都很完美。

但是,对于我想在名称中提供的列,我遇到了问题。

当我添加列时,我想填写名称:l_panoramic_000000,我想继续给它编号,但在6位数内。像这样:

一些例子(当然是编号低谷,但是对于示例有一些例子)。 l_panoramic_000000 l_panoramic_000001 l_panoramic_000010 l_panoramic_009523

-

现在它就像: l_panoramic_0000001 l_panoramic_0000002 l_panoramic_0000004 l_panoramic_00000010 l_panoramic_000000125 l_panoramic_0000002568 等

如何修复它以保持6位数?

for incsv in folder_in.iterdir():
    outcsv = folder_out.joinpath('0new'+incsv.name)

    with open(str(incsv), 'rb') as input, open(str(outcsv), 'wb') as output:
        reader = csv.reader(input, delimiter = ',')
        writer = csv.writer(output, delimiter = ';')

        all = []
        row = next(reader)
        row.insert(0, 'L_panoramic')
        all.append(row)
        for k, row in enumerate(reader):
            all.append(['l_panoramic_000000'+str(k+0)] + row)
        writer.writerows(all)

使用代码:

  for k, row in enumerate(reader):
        all.append(['l_panoramic_'+str.format(k+'06')] + row)
        writer.writerows(all)
它给了我:

 File "C:/code/convert/ConvertImageTrigger.py", line 20, in <module>
    all.append(['l_panoramic_'+str.format(k+'06')] + row)
TypeError: unsupported operand type(s) for +: 'int' and 'str'

2 个答案:

答案 0 :(得分:0)

您正尝试对字符串执行额外的数学运算:

all.append(['l_panoramic_%s' % str(1000000 + k).replace('1', '', 1) + row)

答案 1 :(得分:0)

您可以使用内置format()功能,例如:

'l_panoramic_' + format(k, '06')

k填充0,宽度为6 或者,您可以将str.format()与类似的格式字符串一起使用:

'l_panoramic_{:06}'.format(k)