python 文件读写操作

  1. 读文件
    1. f = open(path,"r",encoding="utf-8",errors="ignore")
    2. 模式:"r":read;"w":write;"a"":add
    3. f = open() ,f.read():一次读取文件的全部内容.
    4. f.read(size):size:一次读取文件多少的字节
      f.readlines():按行读取,读取的内容以列表返回
      f.readline():一行一行 读取
    5. f.close():文件使用完之后必须关闭
    6. 由于文件读写都有可能产生IOError,一旦出错,后面的f.close()就不会调用,所以,为了保证文件是否执行出错都能够正确的关闭文件,我们可以使用try … finally来实现.
      try:
          f = open('/path/demo/file','r')
          print(f.read())
      finally:
          if f:
              f.close()
    7. 另一种关闭文件的方法:(比较常用)
      with open('/path/demo/file', 'r')  as f:
          print(f.read())
      该语句会自动调用f.close()
  2. 写文件
    1. 写入普通文件,with open(path,"w",encoding="utf-8") as f:

      ​    f.write(str):写入的一定是字符串类型

      ​    path:若此路径存在,则覆盖此文件,若不存在,则创建文件.

      "a"模式下,追加文件内容.写入普通文件,with open(path,"a",encoding="utf-8") as f:
    2. 写文件和读文件都是一样的,唯一的区别就是调用open()函数时传入标识符"w"或"wb",表示写文件或写二进制文件.
    3. 你可以反复调用write来写文件,但务必要调用f.close()来关闭文件
    4. 以'w'模式写入文件时,如果文件已经存在,直接覆盖(相当于删掉后新写入一个文件),如果我们希望追加到文件的末尾怎么办?可以传入'a'以追加模式写入.
      with open('/users/demo/test.txt', 'a') as f:
      f.write('hello, world')
  3. StringIO
    1. 在内存中读写str字符串
    2. 要把str写入StringIO,我们需要先创建一个StringIO,然后像文件一样写入即可.
      from io import StringIO
      f = StringIO()
      f.write("hello")
      f.write("    ")
      f.write('world')
      #获取写入后的str
      print(f.getvalue())
  4. 二进制文件
    1. 要读取二进制文件,使用"rb"模式打开文件即可
    2.  f = open('/users/demo/gbk.txt','r',encoding = 'gbk',errors = 'ignore')
  5. ByteIO
    1. BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes:
    2. from io import BytesIO
      f = BytesIO()
      f.write("中文".encode('utf-8'))
      print(f.getvalue())
    3. from io import BytesIO
      f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
      f.read()
      b'\xe4\xb8\xad\xe6\x96\x87'
  6. JSon
    1. 如果我们需要在不同的编程语言之间传递对象,那么我们必须把对象序列化成标准化格式,比如xml,但是更好的方法是json,因为json表现出来就是一个字符串,可以被所有的语言读取,也方便存储到磁盘或者网络传输,json不仅是标准模式,并且速度也比xml更快,还可以在web中读取,非常方便。
    2. json.dumps(obj):将obj序列化为json字符串
      a = {'name': 'wang', 'age': 29}
       b = json.dumps(a)
    3. json.loads(s):将json字符串反序列化为Python的基本数据类型.
      name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'} 
      jsDumps = json.dumps(name_emb)  
      jsLoads = json.loads(jsDumps) 
      {"a": "1111", "c": "3333", "b": "2222", "d": "4444"}
      {u'a': u'1111', u'c': u'3333', u'b': u'2222', u'd': u'4444'}
      <type 'str'>
      <type 'dict'>
    4. 如果你要处理的是文件,而不是字符串,可以使用json.dump和json.load
  7. 读写cvs文件
    1. csv文件本身就是个纯文本文件,这种文件格式经常用来作为不同程序之间的数据交互的格式.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值