You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用w模式打开文件的编码类型及指定编码方法

Python中用w模式打开文件的编码问题

默认编码是什么?

  • 用w模式(文本模式)打开文件时,默认编码不是固定的ASCII或UTF-8,完全取决于你的系统环境:
    • Windows系统通常默认是gbk(或对应区域的GB系列编码);
    • Linux/macOS一般默认是utf-8;
    • 你写的file = open("data.txt", "w")就是用系统默认编码来写文件的。

怎么查当前默认编码?

  • 别用sys.getdefaultencoding(),那是Python内部字符串处理的编码,文件I/O的默认编码要看locale.getpreferredencoding(False)的结果,这才是open()实际使用的编码:
    import locale
    print(locale.getpreferredencoding(False))
    

有没有办法显式指定编码?

  • 根本不用额外库,内置open()直接加encoding参数就行:
    # 强制用UTF-8写入
    with open("data.txt", "w", encoding="utf-8") as f:
        f.write("测试内容")
    
  • 要是喜欢用更现代的文件操作方式,Python3.4+内置的pathlib也支持指定编码:
    from pathlib import Path
    Path("data.txt").write_text("测试内容", encoding="utf-8")
    
  • 老一点的codecs模块也能实现,适合需要更精细编码控制的场景:
    import codecs
    with codecs.open("data.txt", "w", encoding="utf-8") as f:
        f.write("测试内容")
    

内容的提问来源于stack exchange,提问作者Toothpick Anemone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 04:22:14