win10 Python读取文件 编码问题

博客讲述了在Windows 10环境下,使用Python读取文件时遇到的GBK编码错误。通过检查文件实际编码为UTF-8,并修改代码以正确指定编码,解决了UnicodeDecodeError。同时介绍了GBK、GB18030、BIG5和UTF-8等编码之间的关系和兼容性。

UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xaf in position 34: illegal multibyte sequence
原始读取代码:

    with open(file, 'r') as f:
        for line in f:
            line = line.strip().split("\t")
            en.append(["BOS"] + nltk.word_tokenize(line[0].lower
Windows 7环境下,Python读取INI文件并修改后再读取可能会遇到一些已知的问题,这通常与文件权限、编码兼容性和操作系统处理文件的方式有关。当你在Win10上操作时,可能由于默认设置或更新导致文件处理更为顺畅。 以下是可能导致Win7下报错的一些原因: 1. 文件权限:确保你在读写文件时有正确的权限。你可以尝试以管理员身份运行Python脚本,或者更改.ini文件的权限设置。 2. 编码问题Windows 7和Win10对文本文件的默认编码可能不同。确保你在打开文件时指定了正确的编码,比如`open('file.ini', 'r', encoding='utf-8')`。 3. Win7的相对路径解析:Win7有时可能对相对路径处理不够一致。如果使用相对路径,确保它们是从脚本运行位置开始计算的。 4. 文件锁定:如果你在程序运行期间直接修改文件,可能会因为其他进程或程序占用文件锁而无法读取。尝试关闭所有不必要的应用程序,然后再尝试。 针对这个问题,可以尝试以下步骤解决: ```python # 使用try-except处理可能的异常 try: with open('file.ini', 'r+', encoding='utf-8') as f: # 读取和修改文件内容 lines = f.readlines() # 修改内容 f.seek(0) # 将文件指针移动到开头 for line in lines: if "需要修改的部分" in line: # 示例替换条件 line = "新的内容\n" # 替换后的行 f.write(line) f.truncate() # 清理多余的空间 except Exception as e: print(f"读写文件时出错: {e}") # 之后再读取文件 with open('file.ini', 'r', encoding='utf-8') as f: content = f.read() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值