将UTF-8转换为ASCII的Python脚本

46 投票
3 回答
160578 浏览
提问于 2025-04-16 07:44

我正在尝试用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")

撰写回答