TypeError:join()只接受一个参数(给定2个)

时间:2016-04-24 13:26:15

标签: python join

我是一个新手,并试图解决从某人的程序中复制的一些代码。目前:

#INITIALIZE OUTPUT FILE AND WRITE HEADER ROW
outfp = open(outfn, "w")
outfp.write('.'.join(fields, '\t') + '\n')  # header

产生以下错误:

TypeError:join()只接受一个参数(给定2个)。

根据我在其他一些帖子中看到的内容,我认为“\ t”.join可能是一个选项,但我不清楚我是如何考虑“\ t”和“\ n ”。任何帮助赞赏。感谢

1 个答案:

答案 0 :(得分:1)

您正在给str.join()两个参数:

'.'.join(fields, '\t')

fields'\t'是两个独立的参数。如果您想使用标签加入fields中的值,则需要使用\t作为调用str.join()方法的字符串:

'\t'.join(fields)

我假设尝试加入'.'字符串是一个误解你的工作原理。这会生成一个字符串,因此您可以在其中添加换行符:

outfp.write('\t'.join(fields) + '\n')  # header

但是,如果您尝试生成制表符分隔文件,那么使用csv module会更好:

 writer = csv.writer(outfn, delimiter='\t')
 writer.writerow(fields)

csv.writer()对象负责转换为字符串,根据需要正确引用,编写分隔符(上例中的制表符)并添加换行符。