将列表转换为字符串
我从一个文件里提取了一些数据,想把这些数据写入第二个文件。但是我的程序返回了一个错误:
sequence item 1: expected string, list found
这个错误的原因是因为 write()
函数需要一个字符串,但它却收到了一个列表。
那么,针对这段代码,我该如何把列表 buffer
转换成字符串,这样我才能把 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()
8 个回答
5
file2.write( str(buffer) )
解释:str(anything)
这个命令会把任何 Python 对象转换成它的字符串形式。就像你用 print(anything)
打印出来的结果,但这里是以字符串的方式呈现。
注意:这可能不是提问者想要的结果,因为它对 buffer
中元素的连接方式没有控制——它会在每个元素之间加上 ,
,不过这对其他人可能会有用。
27
''.join(buffer)
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。
71
试试str.join
这个方法:
file2.write(' '.join(buffer))
文档上说:
这个方法会返回一个字符串,它是把可迭代对象中的字符串连接在一起的结果。元素之间的分隔符就是调用这个方法的字符串。