由于python中默认的编码是ascii,如果直接使用open方法得到文件对象然后进行文件的读写,都将无法使用包含中文字符(以及其他非ascii码字符),因此建议使用utf-8编码。

使用方法

下面的代码读取了文件,将每一行的内容组成了一个列表。

import codecs
file = codecs.open('test.txt','r','utf-8')
lines = [line.strip() for line in file]
file.close()

下面的代码写入了一行英文和一行中文到文件中。

import codecs
file = codecs.open('test.txt','w','utf-8')
file.write('Hello World!\n')
file.write('哈哈哈\n')
file.close()

文件读写模式

最为常见的三种模式,见下表,其中模式就是指获取文件对象时传入的参数,最常用的是前三个。  
|模式|描述|  
|:-:|:-:|  
|r|仅读,待打开的文件必须存在|  
|w|仅写,若文件已存在,内容将先被清空|  
|a|仅写,若文件已存在,内容不会清空|  
|r+|读写,待打开的文件必须存在|  
|w+|读写,若文件已存在,内容将先被清空|  
|a+|读写,若文件已存在,内容不会清空|  
|rb|仅读,二进制,待打开的文件必须存在|  
|wb|仅写,二进制,若文件已存在,内容将先被清空|  
|ab|仅写,二进制,若文件已存在,内容不会清空|  
|r+b|读写,二进制,待打开的文件必须存在|  
|w+b|读写,二进制,若文件已存在,内容将先被清空|  
|a+b|读写,二进制,若文件已存在,内容不会清空|

python使用codecs模块进行文件操作-读写中英文字符相关推荐

  1. python的codecs模块_Python:使用codecs模块进行文件操作及消除文件中的BOM

    前言 此前遇到过UTF8格式的文件有无BOM的导致的问题,最近在做自动化测试,读写配置文件时又遇到类似的问题,和此前一样,又是折腾了挺久之后,通过工具比较才知道原因. image 两次在一个问题上面栽 ...

  2. python文件操作和模块_Python(五)--模块与文件操作

    Python(五)–模块与文件操作 模块和包 模块 模块是包含Python定义和语句的文件,把一组相关函数或代码组织到一个文件中,一个文件即一个模块.模块的文件名 = 模块名+后缀.py 模块之间代码 ...

  3. Python模块和文件操作

    模块和文件操作 时间模块 1.time() - 获取当前时间的时间戳 2.localtime() - 获取本地的当前时间,返回的是结构体时间.localtime(时间戳) - 将时间戳转换成本地时间对 ...

  4. Python随笔:对 txt 文件进行读写,清除,删除操作

    Python随笔:对 txt 文件进行读写,清除内容,删除操作 文章目录 Python随笔:对 txt 文件进行读写,清除内容,删除操作 1.文件读写 1.1 读写文件前打开文件的两个方法 1.2 写 ...

  5. Python基础:集合与文件操作

    集合 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. 关系 ...

  6. Python升级之路( Lv9 ) 文件操作

    Python系列文章目录 第一章 Python 入门 第二章 Python基本概念 第三章 序列 第四章 控制语句 第五章 函数 第六章 面向对象基础 第七章 面向对象深入 第八章 异常机制 第九章 ...

  7. Python之glob模块进行文件匹配及遍历

    Python之glob模块进行文件匹配及遍历 glob是python自带的一个操作文件的相关模块,用来查找符合特定规则的文件路径,是python处理文件路径相关问题中常用的包. glob 文件名模式匹 ...

  8. ansible笔记(5):常用模块之文件操作(二)

    ansible笔记(5):常用模块之文件操作(二)文件操作类模块find模块 find模块可以帮助我们在远程主机中查找符合条件的文件,就像find命令一样.此处我们介绍一些find模块的常用参数,你可 ...

  9. python开发_xml.etree.ElementTree_XML文件操作

    python开发_xml.etree.ElementTree_XML文件操作_该模块在操作XML数据是存在安全隐患_慎用 xml.etree.ElementTree模块实现了一个简单而有效的用户解析和 ...

最新文章

  1. 自然语言处理(NLP)之用深度学习实现命名实体识别(NER)
  2. 数据库经典书籍--数据库系统概念
  3. Oracle 工具权限二
  4. 从源代码的角度分析--在BaseAdapter调用notifyDataSetChanged()之后发生了什么
  5. Linux下,安装配置Weblogic
  6. 组件对象模型:COM
  7. 您的浏览器没有获得Java Virtual Machine(JVM)支持。可能由于没有安装JVM或者已安装但是没有启用。请安装JVM1.5或者以上版本,如果已安装则启用它。...
  8. 邮件服务器在企业网中的应用
  9. GraphQL在Wildfly群上
  10. hive避免MR的情况
  11. 2_less中的数值运算
  12. BZOJ 1801: [Ahoi2009]chess 中国象棋( dp )
  13. 【渝粤教育】国家开放大学2019年春季 1067知识产权法 参考试题
  14. 洛谷 P1040 加分二叉树
  15. openwrt路由器完美破解成信宿舍校园网
  16. 【CVPR华为】【CVPR诺亚方舟】【CVPR2019】华为诺亚方舟实验室2019年CVPR27篇:全面展现诺亚实验室在计算机视觉蓝图
  17. PID系统稳定性和零极点的关系
  18. OA实施分析:OA系统选型警惕哪些陷阱
  19. 概率统计15——泊松分布
  20. 四大主流新闻App竞品分析

热门文章

  1. 11_HTML5_Local_Storage本地存储
  2. 关于@PathVariable与@RequestParam
  3. dxf文件预览打开编辑相关控件推荐
  4. 网络雇佣军 Void Balaur,有组织有纪律,且从不休长假
  5. CloudFlare CDNJS 漏洞差点造成大规模的供应链攻击
  6. 神秘黑客攻陷密码管理器 Passwordstate 部署恶意软件,发动软件供应链攻击
  7. 微软紧急更新 Windows 8.1 和 Server 2012 R2,修复两个严重漏洞
  8. 调查显示存储虚拟化技术尚需3到5年才能成熟
  9. linux Apache启动提示 httpd: apr_sockaddr_info_get() failed f
  10. Python计算绘图——曲线拟合问题(转)