Python,csv writer函数

时间:2014-08-01 17:08:41

标签: python python-2.7 csv

我创建了一个csv函数,它应该要求文件路径和X个字符串写入具有指定csv分隔符的文件。

def WRITE_csv(csv_path,*args):
    with open(csv_path, "ab") as f:
        csv_list=csv.writer(f,delimiter='|')

        csv_string=""
        for arg in args:
            csv_string=csv_string+","+arg

        csv_string=csv_string[1:]

        csv_list.writerow([csv_string])

问题是csv模块正在编写,而不是|


作为一名博纳,我想取代:

        csv_string=""
        for arg in args:
            csv_string=csv_string+","+arg

使用单行功能

csv_string="".format(','.join(arg for arg in args))

但它总是给我一个空字符串!

1 个答案:

答案 0 :(得分:2)

您在分隔符的值中混淆了文字 ,字符串。您只撰写一栏

csv_list.writerow([csv_string])

所以csv.writer()永远不会放入|分隔符,因为没有第二列可以分隔。您传入了一个完整的字符串csv_string作为单值列表,因此很自然地将其视为唯一的列。该模块再次在逗号上拆分字符串。

不要在作者的分隔符中添加:

def WRITE_csv(csv_path, *args):
    with open(csv_path, "ab") as f:
        csv_list=csv.writer(f,delimiter='|')    
        csv_list.writerow(args)

换句话说,args 已经是csv.writerow()电话的正确类型,您不需要在此处进行转换。