zoukankan      html  css  js  c++  java
  • 文件

    文件:
      文件读写
        读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,
        所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),
        然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。

    读文件;
      以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符:
      f = open('/Users/michael/test.txt', 'r')
      标示符'r'表示读,这样,我们就成功地打开了一个文件。
      f.read()
      f.close()--刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入
      read(),会一次性读取文件的全部内容
      read(size),不能确定文件大小,
      readlines(),读配置文件
      readline()和seek()一起用,seek()回到起点位置如:
      tell()方法告诉你文件内的当前位置, 换句话说,下一次的读写会发生在文件开头这么多字节之后
      seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
      如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
      # 把指针再次重新定位到文件开头
      position = fo.seek(0, 0)
      要读取非ASCII编码的文本文件,就必须以二进制模式打开,再解码。比如GBK编码的文件:
      >>> f = open('/Users/michael/gbk.txt', 'rb')
      >>> u = f.read().decode('gbk')
      在Python中,文件读写是通过open()函数打开的文件对象完成的。使用with语句操作文件IO是个好习惯。

    写文件:
      1、写新文件,覆盖原文件
      2、追加内容
      f = open('/Users/michael/test.txt', 'r')#读文件
      f = open('/Users/michael/test.txt', 'w')#写文件
      f = open('/Users/michael/test.txt', 'a')#追加,
      >>> my_file=open('C:\Users\letsgo\Desktop\测试笔记\PythonCode\23234534231.txt','w')
      >>> print >> my_file, "Hello there ,zhangll" #用print写入文件
      操作文件和目录
      '''
      import os
      # 重命名文件test1.txt到test2.txt。
      os.rename( "test1.txt", "test2.txt" )
      '''
      import os
      # 删除一个已经存在的文件test2.txt
      os.remove("test2.txt")
      '''
      把两个路径合成一个时,不要直接拼字符串,而要通过os.path.join()函数
      操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中,这一点要注意一下
      幸运的是shutil模块提供了copyfile()的函数,你还可以在shutil模块中找到很多实用函数,它们可以看做是os模块的补充
      '''
      import os
      # 创建目录test
      os.mkdir("test")

      # 删除”/tmp/test”目录
      os.rmdir( "/tmp/test" )

      # 给出当前的目录
      print os.getcwd()

      '''
      ● File 对象方法: file对象提供了操作文件的一系列方法。
      ● OS 对象方法: 提供了处理文件及目录的一系列方法。
      ● 在 write 内容后,直接 read 文件输出会为空,是因为指针已经在内容末尾

    序列化:
      我们把变量从内存中变成可存储或传输的过程称之为序列化
      在Python中叫pickling
      反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling
      用Pickle保存那些不重要的数据,不能成功地反序列化也没关系
      >>> d = dict(name='Bob', age=20, score=88)

      >>> f = open('dump.txt', 'wb')
      >>> pickle.dump(d, f)
      >>> f.close()

      >>> f = open('dump.txt', 'rb')
      >>> d = pickle.load(f)
      >>> f.close()
      >>> d


























  • 相关阅读:
    Python 第一课
    HTML学习--基础(2)
    HTML学习--初探(1)
    设计模式--观察者模式
    设计模式--迭代器模式
    设计模式--装饰器模式
    maven常用依赖总结
    mybatis学习二
    mybatis学习一
    maven新建项目的几种方式和启动
  • 原文地址:https://www.cnblogs.com/xuanjian-91/p/8289008.html
Copyright © 2011-2022 走看看