为什么python用乱码字符写入文件
发布时间:2020-12-20 12:22:40 所属栏目:Python 来源:网络整理
导读:我尝试 Problem 10在项目euler并通过,但我决定,如果我将所有素数低于200万到文本(.txt)文件,所以我继续,所以做了一些小的调整主要功能,解决了这个问题所以不只是将它添加到一个变量(tot)我写了一个由生成器生成的素数到一个文本文件,它最初工作但忘了在每个
我尝试
Problem 10在项目euler并通过,但我决定,如果我将所有素数低于200万到文本(.txt)文件,所以我继续,所以做了一些小的调整主要功能,解决了这个问题所以不只是将它添加到一个变量(tot)我写了一个由生成器生成的素数到一个文本文件,它最初工作但忘了在每个素数后添加空格,所以输出有点乱码
所以我修改了我的txt.write(str(next_prime))到txt.write(str(next_prime)”) 在稍作修改后,输出完全是胡言乱语
这是我的功能完整代码: def solve_number_10(): total = 2 txt = open("output.txt","w") for next_prime in get_primes(3): if next_prime < 2000000: txt.write(str(next_prime) + ' ') #total += next_prime else: print "Data written to txt file" #print total txt.close() return 为什么会发生这种情况,我怎样才能使输出像 3 5 7 11 13 17 19 解决方法
这是Microsoft的记事本程序中的错误,而不是您的代码中的错误.
>>> a = '‵??ㄠ″?ㄠ??㈠??????' >>> a.decode('UTF-8').encode('UTF-16LE') '5 7 11 13 17 19 23 29 31 37 41 4' 哦,嘿,看,他们是素数(我假设4只是截断43). 您可以在记事本中解决该错误 >使用没有错误的其他文件查看器. txt.write(u'uFEFF'.encode('UTF-8')) 这被错误地称为BOM.它将是UTF-16的BOM,但从技术上讲,UTF-8不具备BOM.大多数程序忽略它,而在其他程序中它将是无害的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |