重组d

2024-10-06 16:17:40 发布

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

我必须输入一个包含逗号分隔和行分隔数据的文本文件,格式如下:

A002,R051,02-00-00,05-21-11,00:00:00,REGULAR,003169391,001097585,05-21-11,04:00:00,REGULAR,003169415,001097588,05-21-11,08:00:00,REGULAR,003169431,001097607

文本文件中存在多组此类数据

我需要打印所有这些在新的条件行: 每组的前3个元素,在新行中后跟5个参数。所以上述问题的解决方案是:

A002,R051,02-00-00,05-21-11,00:00:00,REGULAR,003169391,001097585
A002,R051,02-00-00,05-21-11,04:00:00,REGULAR,003169415,001097588
A002,R051,02-00-00,05-21-11,08:00:00,REGULAR,003169431,001097607

我的作用如下:

def fix_turnstile_data(filenames):    
    for name in filenames:
        f_in = open(name, 'r')
        reader_in = csv.reader(f_in, delimiter = ',')
        f_out = open('updated_' + name, 'w')
        writer_out = csv.writer(f_out, delimiter = ',')

        array=[]
        for line in reader_in:
            i = 0
            j = -1 
            while i < len(line):
                if i % 8 == 0:
                    i+=2
                    j+=1
                    del array[:]
                    array.append(line[0])
                    array.append(line[1])
                    array.append(line[2])

                elif (i+1) % 8 == 0:
                    array.append(line[i-3*j])
                    writer_out.writerow(array)

                else:
                    array.append(line[i-3*j])

                i+=1

        f_in.close()
        f_out.close()

输出错误,在长度为8的行的末尾有3行的空格。我想可能是作者_out.writerow公司(数组)这是罪魁祸首。你知道吗

有人能帮我吗?你知道吗


Tags: 数据nameinforlineoutarrayreader