如何在python3中合并单元格

时间:2014-11-06 22:10:00

标签: python csv python-3.x

我试图在python3中合并两个单元格。我很感激任何意见。

以下是我脚本的一部分:

with open(input) as infile, open (output, 'w') as outfile:
    reader = csv.reader(infile, delimiter='\t')
    writer = csv.writer(outfile, delimiter='\t')
    for gg, poss, codee, ref, alt, *rest in reader:
        gg = int(gg)
        poss = int(poss)
        writer.writerow([gg, poss, codee, d[group][poss-1], "ref+alt"] + rest)

我正在尝试将列“ref”与“alt”(最后一行中的“ref + alt”)合并,因此我的列将包含列“gg”,“poss”,“codee”,“ d [group] [poss-3]“,和”ref“+”alt“。

“ref”列如下:

A
B
C

而“alt”列有多个以逗号分隔的字母:

A,B
C,D,H
B,F,S

写下最后一行的正确方法是什么,以便“ref”和“alt”像这样合并?

A,A,B
B,C,D,H
C,B,F,S

2 个答案:

答案 0 :(得分:1)

"ref+alt"只是字符串ref+alt,但实际上并没有评估这些变量(它确实不应该)。如果要连接两个字符串,可以对这些变量使用+运算符:

ref + alt

如果你想在两者之间插入一个逗号,你也可以添加:

ref + ',' + alt

答案 1 :(得分:0)

您可以使用以下表达式:','.join((v for v in (ref, alt) if v))如果refaltNone或空字符串'',则会遗漏该命令。< / p>