Python列表写入CSV时不带方括号

2024-06-26 13:45:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我的主要功能是:

def main():
    subprocess.call("cls", shell=True)
    ipList,hostList,manfList,masterList,temp = [],[],[],[],[]
    ipList,hostList,manfList, = getIPs(),getHosts(),getManfs()
    entries = len(hostList)
    i = 0
    for i in xrange(i, entries):
        temp = [[hostList[i]],[manfList[i]],[ipList[i]]]
        masterList.append(temp) 
    with open("output.csv", "wb") as f:
        writer = csv.writer(f, delimiter=',')
        writer.writerows(masterList)

我当前的输出是它成功地写入CSV,但我的目标是删除方括号。

我试过使用.join()方法,但我知道它只接受单个列表,而不接受嵌套列表。

如果我使用的是三维列表,我怎么能做到这一点呢?注意,我打算在将来添加更多的数据列。


编辑:

我对一行的电流输出类似于:

['Name1,'] ['Brand,'] ['1.1.1.1,']

我希望是:

Name1, Brand, 1.1.1.1,


Tags: csv功能列表maindeftempwriterentries
3条回答

我同意上面关于删除方括号的回答,但是如果出于某种原因这对您很重要,这里有一个函数,它接受一个列表作为输入,并返回一个csv行可接受列表。

def output_list(masterList):
    output = []
    for item in masterList:
        if isinstance(item,list): #if item is a list
            for i in output_list(item): #call this function on it and append its each value separately. If it has more lists in it this function will call itself again
                output.append(i)
        else:
            output.append(item)
    return output

您可以在第masterList.append(temp)行中将其用作masterList.append(output_list(temp)),甚至类似于:

#in the end
with open("output.csv", "wb") as f:
    writer = csv.writer(f, delimiter=',')
    for i in masterList:
        writer.writerow(output_list(i))

尝试更改此:

temp = [[hostList[i]],[manfList[i]],[ipList[i]]]

对此:

temp = [hostList[i],manfList[i],ipList[i]]

在创建masterList时尝试删除temp中值的括号,因为它将是嵌套列表。所以,代码应该是:

def main():
    subprocess.call("cls", shell=True)
    ipList,hostList,manfList,masterList,temp = [],[],[],[],[]
    ipList,hostList,manfList, = getIPs(),getHosts(),getManfs()
    entries = len(hostList)
    i = 0
    for i in xrange(i, entries):
        temp = [hostList[i], manfList[i], ipList[i]]
        masterList.append(temp) 
    with open("output.csv", "wb") as f:
        writer = csv.writer(f, delimiter=',')
        writer.writerows(masterList)

相关问题 更多 >