我已经用CSV writer从列表中创建了一个CSV文件。我想将通过for循环创建的另一个列表按列附加到CSV文件中。在
创建CSV文件的第一个代码如下:with open("output.csv", "wb") as f:
writer = csv.writer(f)
for row in zip(master_lst):
writer.writerow(row)
我使用列表master_lst创建了CSV文件,输出如下:
^{pr2}$
然后,我通过一个for循环创建另一个列表(ind_lst),该列表的内容必须按列追加到上一步创建的CSV文件中。我使用了以下代码:with open("output.csv", "ab") as f:
writer = csv.writer(f)
for row in zip(ind_lst):
writer.writerow(row)
我得到的输出如下:read
ACACCUGGGCUCUCCGGGUACC
ACGGCUACCUUCACUGCCACCC
AGGCAGUGUGGUUAGCUGGUUG
sample1
3
3
1
sample2
4
4
1
但是,我需要按列输出,如下所示:read sample1 sample2
ACACCUGGGCUCUCCGGGUACC 3 4
ACGGCUACCUUCACUGCCACCC 3 4
AGGCAGUGUGGUUAGCUGGUUG 1 1
我使用了writer.writerows而不是writer.writerow,但是我得到了这个错误:_csv.Error: sequence expected
输出如下:read
ACACCUGGGCUCUCCGGGUACC
ACGGCUACCUUCACUGCCACCC
AGGCAGUGUGGUUAGCUGGUUG
s a m p l e 1
如您所见,它在每个单元格中打印列表的第一个元素,并在其后以错误终止。我是python的初学者,所以如果有人能帮助解决这个问题,那就太棒了。在
编辑:
主界面使用以下代码创建:infile= open(sys.argv[1], "r")
lines = infile.readlines()[1:]
master_lst = ["read"]
for line in lines:
line= line.strip().split(',')
fourth_field = line [3]
master_lst.append(fourth_field)
使用以下代码创建索引:for file in files:
ind_lst = []
if file.endswith('.fa'):
first = file.split(".")
first_field = first [0]
ind_lst.append(first_field)
fasta= open(file)
individual_dict= {}
for line in fasta:
line= line.strip()
if line == '':
continue
if line.startswith('>'):
header = line.lstrip('>')
individual_dict[header]= ''
else:
individual_dict[header] += line
for i in master_lst[1:]:
a = 0
if key in individual_dict.keys():
a = individual_dict[key]
else:
a = 0
ind_lst.append(a)