我从文件中提取了一些数据,并希望将其写入第二个文件.但我的程序返回错误:
sequence item 1: expected string, list found
Run Code Online (Sandbox Code Playgroud)
这似乎正在发生,因为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()
Run Code Online (Sandbox Code Playgroud)
mik*_*iku 72
试试str.join
:
file2.write(' '.join(buffer))
Run Code Online (Sandbox Code Playgroud)
文件说:
返回一个字符串,该字符串是可迭代迭代中字符串的串联.元素之间的分隔符是提供此方法的字符串.
blo*_*ley 27
''.join(buffer)
Run Code Online (Sandbox Code Playgroud)
file2.write( str(buffer) )
Run Code Online (Sandbox Code Playgroud)
说明:
str(anything)
将任何python对象转换为其字符串表示形式.类似于你得到的输出print(anything)
,但是作为一个字符串.
注意:这可能不是OP想要的,因为它无法控制buffer
连接元素的方式 - 它将放在,
每个元素之间 - 但它可能对其他人有用.
buffer=['a','b','c']
obj=str(buffer)
obj[1:len(obj)-1]
Run Code Online (Sandbox Code Playgroud)
将输出"'a','b','c'"
归档时间: |
|
查看次数: |
84700 次 |
最近记录: |