Python 如何删除多余的逗号并获得输出csv文件的正确格式
我正在运行以下代码:-Python 如何删除多余的逗号并获得输出csv文件的正确格式,python,csv,Python,Csv,我正在运行以下代码:- import csv import sys from collections import OrderedDict file_name='sample.txt' with open(file_name,'rb') as f: reader = csv.reader(f) headers = reader.next() p=[] for row in reader: row[0] = ro
import csv
import sys
from collections import OrderedDict
file_name='sample.txt'
with open(file_name,'rb') as f:
reader = csv.reader(f)
headers = reader.next()
p=[]
for row in reader:
row[0] = row[0].zfill(6)
row[2] = row[2].zfill(6)
row[3] = row[3].zfill(6)
row[4] = row[4].zfill(6)
row[1] = row[1][5:7] + "-" + row[1][8:10] + "-" + row[1][:4]
p.append(row[:5])
print p
with open('sample_out.txt', 'wb') as ofile:
header = ['User_ID','Date','Num_1','Num_2','Com_ID']
extra_headers = sys.argv
header.extend(sys.argv[1:])
n = len(sys.argv)
writer = csv.DictWriter(ofile, fieldnames=header)
writer.writeheader()
col_fill = ''
writer.writerows({col: row_item} for row in p for row_item,col in zip(row+[col_fill]*n,header))
我从命令行传递列名,例如python script.py BOL1 BOL2
这是输出文件:--
如何删除多余的逗号并使其可读
writer.writerows({col: row_item} for row in p for row_item,col in zip(row+[col_fill]*n,header))
您正在写入只包含一列的行。只需看看支架里面有什么。也许你想用这样的东西:
{col:row_item for row_item,col in zip(row+[col_fill]*n,header)} for row in p
生成包含每行信息的词典。由于我们不需要在字典中填充空列,并且dict接受一个由键、值对组成的iterable,因此可以这样写:
dict(zip(header,row)) for row in p
逗号不是给这些值赋予了意义吗?
dict(zip(header,row)) for row in p