下面的代码有如下输出,我试图将内容保存在.txt文件中,但得到的错误如下 样本输出:
<tide> <locationdata> <nodata info=""/> </locationdata> </tide> <tide> <locationdata> <location name="KRISTIANSUND" code="KSU" latitude="63.479150" longitude="8.117700" delay="0" factor="1.03" obsname="KRID" obscode="KSU"/> <reflevelcode>CD</reflevelcode> <data type="prediction" unit="cm"> <waterlevel value="82.8" time="2017-06-04T16:00:00+01:00" flag="pre"/> </data> </locationdata> </tide>
for i in range(len(list1)):
list1[i] = list1[i].decode("utf-8").strip()
print(list1[i])
f=open('f1.txt','w')
s1='\n'.join(list1)
f.write(s1.encode('utf-8'))
f.close()
我收到的错误消息是“write()参数必须是str,而不是bytes”
我做错了什么
谢谢
此错误是由于在写入文件之前尝试对字符串s1进行编码造成的
改用
f.write(s1)
,你会没事的问题:您正在写入字节而不是文本 行:
解决方案:
解决方案说明:对于list1的每一行,打开f1.txt并将这些行作为字符串而不是字节追加
当您对字符串进行编码时,它将转换为位,因此输出文件应处于二进制模式,以便将其写入文件中。open()函数中的“b”激活该二进制模式
相关问题 更多 >
编程相关推荐