如何在cgi/python中将列表列表写入文件?

2024-04-19 14:04:06 发布

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

我有一份清单:

 table = []
 headers = ["JobId", "Name", "Start_Date", "End_Date", "Value"]
 table.append(headers)
 values1 = ['efwef', 'erwerw', '01', '02', 99]
 table.append(values1)
 values2 = ['efwsdfsef', 'erdwerw', '01']
 table.append(values2)

该表是一个列表列表,其中每个列表具有不同长度的元素,所有元素都可以是字符串

你知道吗索引.cgi地址:

print "Content-Type: text/plain; charset=UTF-8"
print "Content-Disposition: attachment; filename=test.txt"
print

for row in table:
    for row_values in row:
        if type(row_values) is not str:
            row_values = str(row_values)
        print row_values + '\t'
    print '\n'

但这个指纹:

JobId
Name
Start_Date
End_Date
Value

efwef
erwerw
01
02
99

。。。。 .... 你知道吗

有人能告诉我我做错了什么吗?我试着替换'\n'并打印“#########################

   JobId
    Name
    Start_Date
    End_Date
    Value
##########################
    efwef
    erwerw
    01
    02
    99
##########################

即使我没有添加'\n',列表中的每个元素都将以新行打印。你知道吗


Tags: name元素列表datevaluetablestartend
1条回答
网友
1楼 · 发布于 2024-04-19 14:04:06

print添加换行符。一种方法是使用str.join一次print您的行(另外:请注意,您的所有数据都是字符串,因此无需转换为字符串)

for row in table:
    print("\t".join(row))

如果整数/浮点数不起作用:

for row in table:
    print("\t".join(map(str,row)))

使用join的好处是它不会在字符串末尾添加(无用的)\t,而且您不必手动处理它。你知道吗

但是您可以使用csv模块(即使是非字符串列表)以一种更简单的方式进行操作,只需一行:

import csv,sys

csv.writer(sys.stdout,delimiter="\t").writerows(table)

相关问题 更多 >