每当我尝试将数字数据写入我的.txt文件时,都会引发错误

时间:2019-03-29 13:37:07

标签: python file

我尝试了直接字符串转换和倍数方法,但是,错误不断出现。

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:字符映射到

正在寻找一种方法将此信息写入我的文件。

2 个答案:

答案 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的值似乎不是实际数字;它包含卢比符号,而您尝试使用的字符编码中没有等效的符号。