关于python编码问题
想写一个批量重命名脚本#coding: utf-8
import os, re
path = input("请输入你要修改的文件目录: ")
files = os.listdir(path)
os.chdir(path)
print(f"当前目录的所有文件:{files}")
请输入你要修改的文件目录: /home/mablish/Media/TV/大时代
当前目录的所有文件:['E05.mkv', 'E15.mkv', 'E14.mkv', 'E20.mkv', 'E06.mkv', 'E31.mkv', 'E01.mkv', 'E33.mkv', 'E23.mkv', 'E39.mkv', 'E34.mkv', 'E19.mkv', 'E10.mkv', 'E04.mkv',
'E17.mkv', 'E11.mkv', 'E36.mkv', 'E26.mkv', 'E07.mkv', 'E02.mkv', 'E21.mkv', 'E29.mkv', 'E09.mkv', 'E12.mkv', 'E22.mkv', 'E35.mkv', 'metadata', 'E13.mkv', 'E24.mkv', 'E32.mkv',
'E27.mkv', 'E25.mkv', 'E40.mkv', 'E18.mkv', 'E30.mkv', 'E03.mkv', 'E37.mkv', 'E08.mkv', 'E38.mkv', 'E16.mkv', 'E28.mkv']
请输入你要修改的文件目录: /home/mablish/Media/TV/刺客伍六七S01
Traceback (most recent call last):
File "/home/mablish/rename.py", line 5, in <module>
path = input("请输入你要修改的文件目录: ")
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe3 in position 0: invalid continuation byte
不明白为什么第一个可以用而第二个又不行了 这个错误提示表明,你的程序在尝试以 utf-8 编码格式解码一个包含无效字符的字节序列。在大多数情况下,这个问题可以通过使用正确的编码格式解码数据来解决。
你可以尝试使用不同的编码格式进行解码。比如,如果你知道数据的编码格式是 GBK,可以尝试使用以下代码:
with open('filename', 'r', encoding='gbk') as f:
data = f.read()
如果你不确定数据的编码格式,可以尝试使用 chardet 库来检测数据的编码格式:
import chardet
with open('filename', 'rb') as f:
data = f.read()
encoding = chardet.detect(data)['encoding']
with open('filename', 'r', encoding=encoding) as f:
data = f.read()
在这个例子中,chardet.detect() 函数会检测数据的编码格式,并返回一个字典,其中包含编码格式的信息。然后,使用检测到的编码格式来打开文件并解码数据。
希望这些方法可以帮助你解决这个错误! isdkz 发表于 2023-3-28 16:25
这个错误提示表明,你的程序在尝试以 utf-8 编码格式解码一个包含无效字符的字节序列。在大多数情况下,这 ...
刚刚我是ssh远程操作的,现在我在本机上操作又不存在这个问题了,怎么回事 zhoujie13 发表于 2023-3-28 16:32
刚刚我是ssh远程操作的,现在我在本机上操作又不存在这个问题了,怎么回事
估计是你远程的文件跟本机的文件编码不一样 或许你需要的是 tinyMediaManager 而非 prthon 赚小钱 发表于 2023-3-28 17:05
或许你需要的是 tinyMediaManager 而非 prthon
当作练习多好 isdkz 发表于 2023-3-28 16:37
估计是你远程的文件跟本机的文件编码不一样
可能Windows和Ubuntu不一样吧
页:
[1]