12.2

  1. 读文件
  2.  >>> f = open('/Users/michael/test.txt', 'r')
  3.  标示符'r'表示读 用read()方法可以一次读取文件的全部内容
  4.  >>> f.read()
  5.  用close()方法关闭文件
  6. >>> f.close()
  7.  为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现:
  8.  try:
  9.       f = open('/path/to/file', 'r')
  10.       print f.read()
  11.       finally:
  12.       if f:
  13.       f.close()
  14.  过于繁琐引入with语句来自动帮我们调用close()方法:
  15.  with open('/path/to/file', 'r') as f:
  16.  print f.read()
  17.  反复调用read(size)方法,每次最多读取size个字节的内容。
  18. 另外,调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。
  19.  要读取二进制文件,比如图片、视频等等,用'rb'模式打开文件:
  20.  >>> f = open('/Users/michael/test.jpg', 'rb')
  21.  >>> f.read()
  22.  '\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节 要读取非ASCII编码的文本文件,就必须以二进制模式打开,再解码。
  23. 比如GBK编码的文件:
  24.  >>> f = open('/Users/michael/gbk.txt', 'rb')
  25.  >>> u = f.read().decode('gbk')
  26.  >>> u
  27. u'\u6d4b\u8bd5'
  28.  >>> print u
  29.  Python还提供了一个codecs模块帮我们在读文件时自动转换编码,直接读出unicode:
  30.  import codecs
  31.  with codecs.open('/Users/michael/gbk.txt', 'r', 'gbk') as f:
  32. f.read() # u'\u6d4b\u8bd5'
  33.  调用open()函数时,传入标识符'w'或者'wb'表示写文本文件或写二进制文件:
  34.  >>> f = open('/Users/michael/test.txt', 'w')
  35.  >>> f.write('Hello, world!')
  36. >>> f.close()
  37.  可以反复调用write()来写入文件,但是要用f.close()来关闭文件 with语句:
  38.  with open('/Users/michael/test.txt', 'w') as f:
  39.  f.write('Hello, world!')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值