Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何删除多余的逗号并获得输出csv文件的正确格式_Python_Csv - Fatal编程技术网

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