我正在尝试将此程序的输出保存到文件中,但在执行此操作时遇到错误。
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)
答案 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)