Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.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 - Fatal编程技术网

Python 如何将带引号、逗号分隔的项目列表写入CSV文件,而不使用带引号列表中的最后一个逗号?

Python 如何将带引号、逗号分隔的项目列表写入CSV文件,而不使用带引号列表中的最后一个逗号?,python,Python,将包含逗号分隔值的嵌入引号列表的数据行写入CSV文件的优雅Python方式是什么 我需要在逗号分隔的列表周围加引号,这样Excel在使用Excel查看列表时不会将列表分成单独的列 我的函数如下所示: def write_customer_list(self): with open('reports/systems.csv', 'w') as f: f.write('Systems Report for week {}\n'.format(self.week))

将包含逗号分隔值的嵌入引号列表的数据行写入CSV文件的优雅Python方式是什么

我需要在逗号分隔的列表周围加引号,这样Excel在使用Excel查看列表时不会将列表分成单独的列

我的函数如下所示:

def write_customer_list(self):
    with open('reports/systems.csv', 'w') as f:
        f.write('Systems Report for week {}\n'.format(self.week))
        f.write('CustId,IP_AddrList,ModelNum\n')   # Header for csv file
        for cust_id, system in self.systems.items():
            f.write('{}'.format(cust_id))
            f.write(',\"')  # open double quote string for list
            for value in system['ip_addr_list']:
                f.write('{},'.format(value))
            f.write('\"')  # close the quote
            f.write(',{}\n'.format(system['model_num']))
123,"10.1.1.6,10.1.2.12,10.1.3.15,",NEX3601
124,"10.2.5.6,10.2.1.12,",NEX3604
输出如下所示:

def write_customer_list(self):
    with open('reports/systems.csv', 'w') as f:
        f.write('Systems Report for week {}\n'.format(self.week))
        f.write('CustId,IP_AddrList,ModelNum\n')   # Header for csv file
        for cust_id, system in self.systems.items():
            f.write('{}'.format(cust_id))
            f.write(',\"')  # open double quote string for list
            for value in system['ip_addr_list']:
                f.write('{},'.format(value))
            f.write('\"')  # close the quote
            f.write(',{}\n'.format(system['model_num']))
123,"10.1.1.6,10.1.2.12,10.1.3.15,",NEX3601
124,"10.2.5.6,10.2.1.12,",NEX3604
如何删除ip列表中的尾随“,”?

而不是

for value in system['ip_addr_list']:
    f.write('{},'.format(value))

这将为您提供一个逗号分隔的列表,该列表末尾没有逗号。有关更多信息,请参阅函数的文档


您可能还想看看该模块。使用此模块时,您只需提供数据列表,它将为您设置所有格式。

f.write'{}.formatcust\u id为什么不只是f.writecust\u id?CSV编写器需要一个列表或某种表示单行的iterable。不要使用格式,只需将列表传递给编写者即可。你应该使用CSV模块。这不是怎么写CSV的,伙计。我误读了,认为他们从一开始就在使用CSV模块,对不起。就我个人而言,我会翻转你的答案,从推荐开始。不用担心。我以为你看错了。是的,如果他已经在使用CSV模块,那么这将是一个糟糕的答案。我将把这个建议留到最后,因为当他已经编写好代码的时候,他需要重写所有东西来使用CSV模块,这并没有多大用处。尽管我知道CSV模块存在,但实际上我不会经常使用它,因为当我只编写一个快速的一次性脚本时,不必查看CSV模块的工作方式会更快。很抱歉,我这么晚才发表此评论,但是@Mr.Me,这非常有效!这么简单-哼-我怎么没想到呢!这就是堆栈溢出的好处所在!谢谢