我必须输入一个包含逗号分隔和行分隔数据的文本文件,格式如下:
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公司(数组)这是罪魁祸首。你知道吗
有人能帮我吗?你知道吗
嗯,你用的逻辑最终会很混乱。我会沿着这些思路做得更多(这取代了for循环),这更像python:
相关问题 更多 >
编程相关推荐