Python转换obi的CSV文件长度

2024-03-28 14:13:02 发布

您现在位置:Python中文网/ 问答频道 /正文

这里有点小问题

for row in reader:
    dane_wejsciowe.append(row)

我有一些*.csv文件我想转换,我的转换器行为怪异。。。 上面的函数将所有需要的列放入一个数组,然后我调用这些列来计算其长度:

for line in dane_wejsciowe:
    if len(line['Mnemonik']) > len_mnemonik:
        len_mnemonik += 1

之后,我打印记录print(' - Mnemonik: ' + str(len_mnemonik)),结果是22,但最长的是BEUS_EnergyDriveAvgDist,其中包含_,我怀疑它不计算特殊字母

我把它打印成文件的“白痴”想法是

   if len(i['Mnemonik']) < len_mnemonik:
        a = len_mnemonik - len(i['Mnemonik']) + 1
    else:
        a = 1
    jsfile.write(i['Mnemonik']),
    jsfile.write((' ')*a),

有人有更好的主意吗?:)


Tags: 文件inforleniflinereaderwrite
2条回答

看起来您正在使用csv.reader()收集每一行,这将使用命令中指定的分隔符(默认值为逗号)自动将每一行解析为一个列表。因此,变量dane_wejsciowe是一个列表(?)列表,其中每个外部元素(例如dane_wejsciowe[0])是CSV文件的一行,每个内部元素(例如dane_wejsciowe[0][0])是CSV文件该行中的一个单元格。因此,您的len()==22与文本BEUS_EnergyDriveAvgDist无关,而是告诉您CSV中的列数

if len(line['Mnemonik']) > len_mnemonik:
    len_mnemonik += 1

我不知道为什么您认为上面的代码最终会给您len_mnemonik的最大值,特别是+= 1部分。相反,你应该:

if len(line['Mnemonik']) > len_mnemonik:
    len_mnemonik = len(line['Mnemonik'])

或:

len_mnemonik = max(len_mnemonik, len(line['Mnemonik']))

(无if声明)

相关问题 更多 >