Python 将输出结果以表格格式保存在同一文件或不同文件中
我正试图将这个程序的输出保存到一个文件中,但在执行同样的操作时出现了错误Python 将输出结果以表格格式保存在同一文件或不同文件中,python,list,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") l
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
输入文件如下所示:
核型.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
颜色\u 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)
使用该方法。它的工作原理与前面在代码中使用的csv.reader
方法类似,因为您可以指定分隔符,在本例中,'\t'
,表示选项卡。这将在您编写每个项目时将其拆分为一个选项卡
这是假设您正在尝试写入csv文件。如果没有,并且您仅尝试打印,则可以尝试以下操作:
'\t'.join(row)
编辑:
请解释你所说的“表格格式”是什么意思。您希望输出如何显示?为什么标准Python格式不适合您?你得到了你想要的东西:每一行都是一个字符串列表。您是否想要类似输入格式的内容,但结尾附加了颜色?是的,我也打算这样做。当我试图将打印结果保存到文件中时,格式会发生扭曲。我尝试了csv.writer选项。但我面临的问题是结果不会存储在文件中。我不确定您的新代码是什么样子,但是,在您当前的代码中,`h=open(“test.txt”,“w”)`打开要写入的文件,但您实际上从未写入任何内容。我已将当前编辑添加到主查询/程序中。请查看我在回答中链接的文档。当你创建一个csv.writer对象时,在你调用writerow之前,它实际上不会写东西。因此,在您的示例spamwriter.writerow(行)中,还要注意每次在for循环中创建一个csv.writer时,它应该在外部创建,然后让它在每次迭代中写一行。
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)