我创建了一个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))
但它总是给我一个空字符串!
答案 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()
电话的正确类型,您不需要在此处进行转换。