python codecs.open() 读写文件

with codecs.open() as f 相比 with open () as f

      python读写文件估计都用open内置函数。

      打开文件的方式一般为:with open(file_name,access_mode = 'r',buffering = -1) as f。file_name就是文件的路径加文件名字,不加路径则文件会存放在python程序的路径下,

access_mode就是操作文件的模式,主要有r,w,rb,wb等,细节网上一大堆,buffering = -1是用于指示访问文件所采用的缓存方式。0表示不缓存;1表示只缓存一行,n代表缓存n行。如果不提供或为负数,则代表使用系统默认的缓存机制。

      打开以后就是写和读的操作。但是用open方法打开会有一些问题。open打开文件只能写入str类型,不管字符串是什么编码方式。

这样是完全可以的。但是有时候我们爬虫或者其他方式得到一些数据写入文件时会有编码不统一的问题,所以就一般都统一转换为unicode。此时写入open方式打开的文件就有问题了。例如

>>> line= u'我'
>>> f.write(line)


UnicodeEncodeError: 'ascii' codec can't encode characters

怎么办,我们可以将上面的line编码成str类型,但是太麻烦。我们要把得到的东西先decode为unicode再encode为str。。。

input文件(gbk, utf-8...)   ----decode----->   unicode  -------encode------> output文件(gbk, utf-8...)

代替这繁琐的操作就是codecs.open,例如

>>> import codecs
>>> with codecs.open('test1.txt','a','utf-8') as f:
>>>        fw.write(line)
 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `codecs.open` is a function in Python's `codecs` module that provides a way to open text files with a specified encoding. It takes three arguments: the file path, the mode (e.g. 'r' for reading, 'w' for writing), and the encoding. For example, to open a file called 'example.txt' for reading with UTF-8 encoding, you can use the following code: ```python import codecs with codecs.open('example.txt', 'r', 'utf-8') as f: contents = f.read() ``` The `with` statement ensures that the file is properly closed after reading. The variable `contents` will contain the contents of the file as a string. ### 回答2: with codecs.open是一个用于读写文件的函数,它是Python内置的IO模块codecs中的一个方法。这个函数的作用是打开一个文件并返回一个文件对象,可以用于读取或写入文件中的内容。 使用with codecs.open打开文件的好处是不需要手动关闭文件,它会在操作结束后自动关闭文件。这样可以避免忘记关闭文件而产生的资源泄漏问题。 with codecs.open函数的用法类似于普通的open函数,可以传入文件路径和打开文件的模式。例如,可以使用'rb'模式读取一个二进制文件,'r'模式读取一个文本文件,'wb'模式写入一个二进制文件等等。此外,还可以指定文件的编码方式,例如'utf-8'、'gbk'等。 使用with codecs.open进行文件读取时,可以调用文件对象的read()方法来读取文件的全部内容,或者使用readline()方法每次读取一行内容。可以使用for循环逐行读取文本文件的内容。 而使用with codecs.open进行文件写入时,可以调用文件对象的write()方法来写入内容到文件中。可以使用writelines()方法将多行内容写入文件。 总之,with codecs.open是一个方便且安全的函数,用于读写文件。它的使用方法与普通的open函数类似,但可以自动关闭文件,避免资源泄漏问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值