将列表转换为字符串

62 投票
8 回答
86400 浏览
提问于 2025-04-15 23:08

我从一个文件里提取了一些数据,想把这些数据写入第二个文件。但是我的程序返回了一个错误:

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))

文档上说:

这个方法会返回一个字符串,它是把可迭代对象中的字符串连接在一起的结果。元素之间的分隔符就是调用这个方法的字符串。

撰写回答