Python - 转换 CSV 文件 - 对象的长度

Python - Converting CSV file - lenght of an obiect

这里没什么问题。

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 其中包含 _ 我怀疑它不算特殊字母

我的 "idiotic" 将其打印到文件中的想法是

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

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

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 语句)

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