将UTF-8转换为ASCII的Python脚本
我正在尝试用Python写一个脚本,把utf-8格式的文件转换成ASCII格式的文件:
#!/usr/bin/env python
# *-* coding: iso-8859-1 *-*
import sys
import os
filePath = "test.lrc"
fichier = open(filePath, "rb")
contentOfFile = fichier.read()
fichier.close()
fichierTemp = open("tempASCII", "w")
fichierTemp.write(contentOfFile.encode("ASCII", 'ignore'))
fichierTemp.close()
当我运行这个脚本时,出现了以下错误:
UnicodeDecodeError: 'ascii' 编码无法解码位置13的字节0xef:超出范围(128以内)
我以为可以通过在编码方法中使用ignore参数来忽略错误,但似乎并没有成功。
我也愿意尝试其他转换的方法。
3 个回答
6
UTF-8是一种包含ASCII的编码方式。简单来说,要么你的UTF-8文件是ASCII格式,要么就无法在转换时不丢失信息。
9
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程就像是把水从一个水桶倒到另一个水桶里。
有些时候,我们需要确保在这个过程中,数据不会被意外地改变或者丢失。为了做到这一点,我们可以使用一些工具和方法来保护我们的数据,就像在倒水的时候用一个漏斗,确保水不会洒出来。
在编程里,这种保护数据的方法可以是使用特定的代码结构或者函数,这样可以让我们的程序更加稳健,避免出现错误。
总之,处理数据的时候,我们要小心谨慎,确保每一步都能顺利进行,这样才能得到我们想要的结果。
import codecs
...
fichier = codecs.open(filePath, "r", encoding="utf-8")
...
fichierTemp = codecs.open("tempASCII", "w", encoding="ascii", errors="ignore")
fichierTemp.write(contentOfFile)
...
70
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后再把这些数据放到另一个地方。这个过程就像是搬家,把东西从一个箱子搬到另一个箱子。
在这个过程中,我们可能会遇到一些问题,比如数据格式不对,或者数据量太大,导致处理起来很慢。这就需要我们想办法优化,也就是让这个搬家的过程变得更快、更顺利。
有时候,我们还需要确保在搬家的过程中,不会丢失任何东西。这就像是我们在搬家时要清点物品,确保每一件都能安全到达新家。
总之,处理数据就像是搬家,需要仔细、快速,并且要确保一切都能顺利完成。
data="UTF-8 DATA"
udata=data.decode("utf-8")
asciidata=udata.encode("ascii","ignore")