Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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从一对列表创建以制表符分隔的文本文件_Python_Linux_List - Fatal编程技术网

python从一对列表创建以制表符分隔的文本文件

python从一对列表创建以制表符分隔的文本文件,python,linux,list,Python,Linux,List,我有三张单子 list1 = ["apple","red","1","fresh"] list2 = ["mango","red","5","old"] list3 = ["kiwi","green","3","fresh"] 现在我想创建一个以制表符分隔的文本文件 FRUIT COLOR QUANTITY STATE apple red 1 fresh mango red 5 old kiwi green 3

我有三张单子

list1 = ["apple","red","1","fresh"]
list2 = ["mango","red","5","old"]
list3 = ["kiwi","green","3","fresh"]
现在我想创建一个以制表符分隔的文本文件

FRUIT   COLOR   QUANTITY   STATE
apple   red     1          fresh
mango   red     5          old
kiwi    green   3          fresh
我正在使用这段代码,但是它没有以正确的格式输出

with open ('processed_seq.txt','a') as proc_seqf:
    for a,b,c in zip(list1,list2,list3):
        proc_seqf.write("{}\t{}".format(a,b,c))

[kshk:~/server] % cat processed_seq.txt  
apple   mangored    red1    5fresh  old%  
有什么建议吗

更新:

我正在测试清单上其他人回答的解决方案

list1 = ['JANET>WAS-TEB-01-INT', 'XXX-TR', 'XXX-TR(HTTPS)', 'XXX3>ASAbox', 'Allow charliega', 'ASAS>ASAbox', 'ASAS>ASAbox80', 'ASAS>ASAbox443', 'JilesGHS>ASAbox', 'XXX2>ASAbox', 'Allow XXX', 'JMP>GHS_ALL_NETWORKS', 'GHS_ALL_NETWORKS>JMP', 'ALL_NETWORKS>DNS', 'DNS>ALL_NETWORKS', 'JMP>AMBARI', 'JMP>DSA_TEB', 'JMP>JENKINS_TEB', 'JMP>GIT_TEB', 'JMP>RANGER_TEB', 'ALL>ZABBIX_SERV', 'ZABBIX_SERV>ALL', 'ASAbox>JANET', 'JMP>JANET2', 'DNS>EXTERNAL_DNS', 'ALL_NETWORKS>GUM', 'ALL_NETWORKS>DSA_DOG_7389', 'ALL_NETWORKS>DSA_KERB_TCP_464', 'ALL_NETWORKS>DSA_KERB_TCP_88', 'ALL_NETWORKS>DSA_KERB_UDP_464', 'ALL_NETWORKS>DSA_KERB_UDP_88', 'ALL_NETWORKS>DSA_LDAP_1', 'ALL_NETWORKS>DSA_LDAP_2', 'ALL_NETWORKS>DSA_NTP', 'BDA>BD', 'BDA>BD_UDP', 'BD>PIN-SQP-01', 'ING>-WAS-FTP-01', 'ING>BD_8080', 'WAS-TEB-01>PAP-RSV-02', 'JENKINS>JMP', 'CI>PROXY', 'ING>BD', 'BDN>DSA01', 'ALLOW XXX', 'GUM>PROXY', 'CI>ALL-SERVERS-GHS', 'deny rest']
list2 = ['None', '123.236.68.195/32', '123.236.68.195/32', '62.17.217.104/32', '10.132.8.23/32', '132.43.147.188/32', '132.43.147.188/32', '132.43.147.188/32', '100.184.251.148/32', '100.136.247.11/32', '62.18.120.237/32', '20.20.6.5/32', '20.20.0.0/16', '20.20.0.0/16', '20.20.1.58/32', '20.20.6.5/32', '20.20.6.5/32', '20.20.6.5/32', '20.20.6.5/32', '20.20.6.5/32', '20.20.0.0/16', '20.20.1.50/32', '123.122.0.149/32', '20.20.6.5/32', '20.20.1.58/32', '20.20.0.0/16', '20.20.0.0/16', '20.20.0.0/16', '20.20.0.0/16', '20.20.0.0/16', '20.20.0.0/16', '20.20.0.0/16', '20.20.0.0/16', '20.20.0.0/16', '20.20.2.0/24', '20.20.2.0/24', '20.20.3.0/24', '20.20.4.0/24', '20.20.4.0/24', '20.20.6.3/32', '20.20.1.38/32', '20.20.1.38/32', '20.20.4.0/24', '20.20.3.0/24', '188.29.165.228/32', '20.20.1.33/32', '20.20.1.38/32', 'None']
list3 = ['123.122.0.154/32', '123.122.0.149/32', '123.122.0.149/32', '123.122.0.149/32', 'None', '123.122.0.149/32', '123.122.0.149/32', '123.122.0.149/32', '123.122.0.149/32', '123.122.0.149/32', 'None', '20.20.0.0/16', '20.20.6.5/32', '20.20.1.58/32', '20.20.0.0/16', '20.20.3.7/32', '20.20.1.44/32', '20.20.1.38/32', '20.20.1.38/32', '20.20.3.7/32', '20.20.1.50/32', '20.20.0.0/16', 'None', 'None', '20.20.6.5/32', '20.20.1.33/32', '20.20.1.44/32', '20.20.1.44/32', '20.20.1.44/32', '20.20.1.44/32', '20.20.1.44/32', '20.20.1.44/32', '20.20.1.44/32', '20.20.1.44/32', '20.20.3.0/24', '20.20.3.0/24', '20.20.4.3/32', '20.20.6.7/32', '20.20.3.7/32', '20.20.2.28/32', '20.20.6.5/32', '20.20.6.5/32', '20.20.3.0/24', '20.20.1.44/32', 'None', '20.20.6.5/32', '20.20.0.0/16', 'None']
list4 = ['None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', '22', 'None', '53', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None', 'None']
list5 = ['443', '22', '443', 'None', 'None', '22', '80', '443', '22', 'None', 'None', '22', 'None', '53', 'None', '8080', '443', '8081', '80', '6080', '10051', '10050', 'None', 'None', '53', '80', '7389', '464', '88', '464', '88', '389', '636', '123', 'None', '1024:65535', '22', '22', '8080', '443', '22', '3128', 'None', '443', 'None', '3128', '22', 'None']
list6 = ['allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'allow', 'deny']

由于您不想将列写入文件,因此不需要
zip
,也省略了一些项

要更正可用于指定每个项目后面的空白数量的格式,请执行以下操作:

>>> for a,b,c,d in (list1,list2,list3):
...       print("{:<10} {:<10} {:<10} {:<10}".format(a,b,c,d))
... 
apple      red        1          fresh     
mango      red        5          old       
kiwi       green      3          fresh 
>对于(列表1、列表2、列表3)中的a、b、c、d:
...       使用模块打印(“{::

输出:

FRUIT   COLOR   QUANTITY    STATE
apple   red 1   fresh
mango   red 5   old
kiwi    green   3   fresh

“它的输出格式不正确"-那么它做什么呢?首先,你有三个参数来设置格式,但只有两个占位符。。谢谢,这是可行的,但是我如何能够自动适应列表的长度,即列表上只有4个项目,如果列表中有100个项目呢?@Kristigitx如果可行,你可以通过答:我的原始列表中的项目数大约为20,我是否需要添加其中的20个“{:@kridigitx否您可以通过在循环前乘以:来创建格式字符串
>>s=”{:请参阅上面的新列表,使用s.format的输出不是PrettyTool,这是一个很好的建议,但是输出并不漂亮,尤其是最后一行…您到底想要什么样的输出?您最初的问题是使用制表符分隔的输出,而不是固定宽度的格式。这是制表符分隔的输出。在这种情况下,csv模块不适合您。但我想向你们指出这个讨论,仅供参考:干杯。
>>> for a in (list1,list2,list3):
...       print("{:<10} {:<10} {:<10} {:<10}".format(*a))
... 
apple      red        1          fresh     
mango      red        5          old       
kiwi       green      3          fresh 
>>> s="{:<10}"*4
>>> for a in (list1,list2,list3):
...       print("s.format(*a))
... 
apple      red        1          fresh     
mango      red        5          old       
kiwi       green      3          fresh 
import csv
csv.register_dialect('fruit', delimiter='\t', quoting=csv.QUOTE_NONE, lineterminator='\n')
with open('processed_seq.txt', 'a') as csvfile:
    fieldnames = ['FRUIT', 'COLOR', 'QUANTITY', 'STATE']
    list1 = ["apple","red","1","fresh"]
    list2 = ["mango","red","5","old"]
    list3 = ["kiwi","green","3","fresh"]
    alllists = [fieldnames, list1, list2, list3]
    writer = csv.writer(csvfile, dialect='fruit')
    writer.writerows(alllists)
FRUIT   COLOR   QUANTITY    STATE
apple   red 1   fresh
mango   red 5   old
kiwi    green   3   fresh