我尝试了直接字符串转换和倍数方法,但是,错误不断出现。
f.write("Original Price: " + str(original_price) + "/n")
#Where original price is an integer taken through an html source.
错误: f.write(“原始价格:” + str(原始价格)) 第19行中的文件“ C:\ ProgramData \ Anaconda3 \ lib \ encodings \ cp1252.py” 编码 返回codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError:“ charmap”编解码器无法在其中编码字符“ \ u20b9” 位置16:字符映射到
正在寻找一种方法将此信息写入我的文件。
答案 0 :(得分:1)
我找到了一个解决方案,我猜:
您应该使用编码参数打开文件:
with open('towrite.txt, 'w+', encoding='utf-8') as f:
f.write('Original Price: ' + str(original_price) + '\n')
这应该有效。
答案 1 :(得分:0)
write
方法需要一个bytes
对象;您正在尝试传递str
对象。您需要先对其进行编码。要编写字符串的UTF-8编码,例如
f.write("Original Price: {}\n".format(original_price).encode('utf-8'))
original_price
的值似乎不是实际数字;它包含卢比符号₹
,而您尝试使用的字符编码中没有等效的符号。