将输出结果以表格格式保存在同一文件或不同文件中

时间:2016-02-03 23:33:24

标签: python list

我正在尝试将此程序的输出保存到文件中,但在执行此操作时遇到错误。

import csv
import random

with open('karyotype.zeamays1.txt', 'r') as f:
    reader = csv.reader(f, delimiter='\t')
    for row in reader:
        lines = []
        colors = open("colours_bar.txt", "r")
        lines = colors.read().split()
        color_me = random.choice(lines)
        row.append(color_me)
        h = open("test.txt", "w")
        print row 

输入文件如下:

karyotype.zeamays1.txt

    chr -   b73_chr1    B73-Chr1    0   301354135   
    chr -   b73_chr2    B73-Chr2    0   237068873   
    chr -   b73_chr3    B73-Chr3    0   232140174   
    chr -   b73_chr4    B73-Chr4    0   241473504   
    chr -   b73_chr5    B73-Chr5    0   217872852   
    chr -   w22_chr1    W22-Chr1    0   301354135

colours_bar.txt

    black
    dred 
    dpred
    vdgreen 
    pgreen
    vvdpgreen

当我打印行时,我得到如下结果:

['chr', '-', 'b73_chr1', 'B73-Chr1', '0', '301354135', '', 'black']
['chr', '-', 'b73_chr2', 'B73-Chr2', '0', '237068873', '', 'vdgreen']
['chr', '-', 'b73_chr3', 'B73-Chr3', '0', '232140174', '', 'vdpurple']
['chr', '-', 'b73_chr4', 'B73-Chr4', '0', '241473504', '', 'vdgreen']
['chr', '-', 'b73_chr5', 'B73-Chr5', '0', '217872852', '', 'vdppurple']

如何以表格格式将此结果保存到文件中?

评论后编辑:

with open('karyotype.zeamays1.txt', 'r') as f:
    reader = csv.reader(f,delimiter='\t')
    for row in reader:
        lines=[]
        colors=open("colours_bar.txt","r")
        lines=colors.read().split()
        color_me=random.choice(lines)
        row.append(color_me)

    csvfile=open('lvg.csv','wb')
    spamwriter=csv.writer(csvfile,delimiter='\t',quotechar='|',quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(row)

1 个答案:

答案 0 :(得分:1)

使用csv.writer方法。它与您之前在代码中使用的csv.reader方法类似,您可以指定分隔符,在本例中为'\t',表示选项卡。这将在您编写时按标签分割每个项目。

这是假设您正在尝试写入csv文件。如果没有,而你只是想打印,你可以试试这个:

'\t'.join(row)

编辑:

with open('karyotype.zeamays1.txt', 'r') as f:
    reader = csv.reader(f,delimiter='\t')
    csvfile=open('lvg.csv','wb')
    spamwriter=csv.writer(csvfile,delimiter='\t',quotechar='|',quoting=csv.QUOTE_MINIMAL)
    for row in reader:
        lines=[]
        colors=open("colours_bar.txt","r")
        lines=colors.read().split()
        color_me=random.choice(lines)
        row.append(color_me)
        spamwriter.writerow(row)