【Python】-006-变量类型-文件

1.文件读写

import codecs
fileO = codecs.open(file_name, access_mode, 'utf-8')    //用codecs提供的open方法来指定打开的文件的语言编码,它会在读取的时候自动转换为内部unicode,常用处理中文编码文件
fileObject = open(file_name [, access_mode][, buffering])  

fileObject.name  //返回文件路径+名称字符串
fileObject.mode  //返回被打开文件的访问模式字符串

fileObject.write('Haha\n')  //将字符串写入文件,依据文件的打开方式而定
fileObject.read(10)  //10表示读取的长度,选填,若无参数则表示读取至文件结束为止,返回读取的字符串
fileObject.readline()  //每次读出一行内容,返回字符串
fileObject.readlines()  //读取整个文件所有行,保存在list中

fileObject.tell()  //告诉你文件内当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后
fileObject.seek(0)  //改变当前文件指针位置,回到初始位置

fileObject.close()  //关闭文件

2.文件重命名和删除

import os
os.path.exists(file_name)  //检查文件是否存在,返回布尔值
os.rename(current_file_name, new_file_name)  //改变文件名称
os.remove(file_name)  //删除文件

3.目录处理方法

import os
os.getcwd()  //查看当前目录名称
os.chdir(new_dir)  //改变当前的目录为new_dir
os.mkdir(dir_name)  //创建名为dir_name的目录
os.rmdir(dir_name)  //删除名为dir_name的目录

4.数据持久性库

  • shelve库
    //shelve是一个简单的数据存储方案,类似key-value数据库,可以很方便将python对象保存到文件中。
    import shelve
    f = shelve.open('test.db') //新建数据库
    f['name'] = 'Tom'
    f['age'] = '30'
    f['gender'] = 'male'
    print f
    f.close()

    g = shelve.open('test.db')
    print g  //{'gender': 'male', 'age': '30', 'name': 'Tom'}
    
  • pickle/cPickle库
    //将对象转换为可通过网络传输或可以存储到本地磁盘的数据格式,成为序列化,反之则称为反序列化。
    //pickle是Python库中常用的序列化库,可以存储到文件或传输数据,cPickle,性能更高
    import cPickle
    f = open('pkl_test.txt', 'w')
    obj1 = {'name': 'Tom', 'age': '33', 'gender': 'male'}
    obj2 = 2016, 'Tom', 'Yuntong', ['TZG', 'Magic', 'Panocooker']
    cPickle.dump(obj1, f) //将obj1放入文件f
    cPickle.dump(obj2, f)
    f.close()

    f = open('pkl_test.txt', 'r')
    print cPickle.load(f)  //将f中数据反序列化,先进先出,{'name': 'Tom', 'age': '33', 'gender': 'male'}
    print cPickle.load(f)  //(2016, 'Tom', 'Yuntong', ['TZG', 'Magic', 'Panocooker'])
    

参考资料

  1. Python 文件I/O
  2. Python之数据序列化(json、pickle、shelve)

你可能感兴趣的:(【Python】-006-变量类型-文件)