将列表转换为string

我已经从一个文件中提取了一些数据,并希望将其写入第二个文件。 但是我的程序正在返回错误:

sequence item 1: expected string, list found 

这似乎正在发生,因为write()想要一个string,但它正在接收一个列表。

所以,关于这个代码,我怎样才能将列表buffer转换为一个string,以便我可以将buffer的内容保存到file2

 file = open('file1.txt','r') file2 = open('file2.txt','w') buffer = [] rec = file.readlines() for line in rec : field = line.split() term1 = field[0] buffer.append(term1) term2 = field[1] buffer.append[term2] file2.write(buffer) # <== error file.close() file2.close() 

尝试str.join

 file2.write(' '.join(buffer)) 

文档说:

返回一个string,它是可迭代迭代中string的串联。 元素之间的分隔符是提供此方法的string。

 ''.join(buffer) 
 file2.write( str(buffer) ) 

说明: str(anything)将把任何python对象转换成它的string表示forms。 类似于你输出的结果,如果你print(anything) ,但作为一个string。

注意:这可能不是OP想要的,因为它不能控制buffer的元素如何连接 – 它会放在每个元素之间 – 但对其他人可能是有用的。

 file2.write(','.join(buffer)) 

方法1:

 import functools file2.write(functools.reduce((lambda x,y:x+y), buffer)) 

方法2:

 import functools, operator file2.write(functools.reduce(operator.add, buffer)) 

方法3:

 file2.write(''join(buffer)) 
 buffer=['a','b','c'] obj=str(buffer) obj[1:len(obj)-1] 

将输出“a”,“b”,“c”作为输出

 # it handy if it used for output list list = [1, 2, 3] stringRepr = str(list) # print(stringRepr) # '[1, 2, 3]'