|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我是需要导入xml文件,然后打开,替换里面内容的,可是在Python的IDLE里面单独写打开文件这句话就不会报编码错误,而我编辑一个文本写在for循环里面却会报编码错误,请问这是为什么呀?
- import re
- for index_num in range(2755):
- f = open(f'{index_num}.xml','r',encoding='utf-8')
- content = f.read()
- new_str = re.findall('<filename>(.*)</filename>', content)
- old_str = ''.join(new_str)
- content = content.replace(old_str, f'{index_num}.jpg', 2)
- f.close()
- f = open(f'{index_num}.xml', 'w')
- f.write(content)
- f.close()
复制代码
该编码错误通常是在读取文本文件时出现的,有可能是因为文件内容包含了未知的字符或使用了和文件编码不匹配的编码方式。
在这段代码中,您使用了 utf-8 的编码打开xml文件。但是,考虑到该jupyter notebook还有其他的设置值,这些值可以影响到您的文件解释器的编码值。所以建议您对所用习惯的文本编辑器(如notepad++,atom等)查看文件的准确编码方式。此外,如果您的文件中包含非 unicode 字符,则会导致编码错误。可能需要采用其他编码格式(例如 gbk,gb2312)来打开特定文件。
针对类似情况,建议以下步骤:
1. 确认您的文件内容真正使用的编码格式。
2. 给 `open()` 函数增加 `errors='ignore'` 参数避免出现被忽略的错误文件。
例如:`f = open(f'{index_num}.xml','r',encoding='utf-8', errors='ignore')`
3. 尝试改变原始数据的编码形式, 重新转换转换为正确编码后再进行处理
|
|