业务需要写了个转码工具,将所有文件转成utf-8编码,但是报错了。。。
原代码大概如下:
import chardet
def get_coding(path):
file = open(path, "rb")
data = file.read()
coding = chardet.detect(data).get("encoding")
print(f"文件编码为:{coding}")
with open(path, "r", encoding=coding) as f1, open("2.txt", "w", encoding="utf-8") as f2:
for l in f1:
f2.write(l)
if __name__ == "__main__":
get_coding("1.textgrid")
报错情况如下:
百度了一番,发现gb2312编码解码不能用gb2312编码,改成gbk即可
修改后的代码如下:
import chardet
def get_coding(path):
file = open(path, "rb")
data = file.read()
coding = chardet.detect(data).get("encoding")
print(f"文件编码为:{coding}")
# -------这里将encoding改为gbk--------
with open(path, "r", encoding="gbk") as f1, open("2.txt", "w", encoding="utf-8") as f2:
for l in f1:
f2.write(l)
if __name__ == "__main__":
get_coding("1.textgrid")
以防下次遇到这种错误,特此记录一下~