python 操作文件

常用操作

1.常用操作

f = open(path,'r')
f.read()
f.readline()
f.write()
f.close()

2.中文支持

import codecs
f = codecs.open(filename,mode,encoding)

3.文件操作

import os
os.path.exists(filename) #判断文件是否存在
os.rename(old,new)    #重命名

写入和读取中文

1.读取和写入文件

#-*-coding:utf-8-*-

import codecs

f = codecs.open('/Users/wenjun/Downloads/ceshi','w','utf-8')
f.write(u'测试测试测试')
f.write(u'测试测试测试1')
f.write(u'测试测试测试2')
f.close()

f = codecs.open('/Users/wenjun/Downloads/ceshi','r','utf-8')
print f.readline()
f.close()    

如上图所示,文件都打印到一行去了,因为没有换行

此外,read 和 readline 的区别,read每次只读取一个字符,而readline是一次读取一行。

2.判断文件是否存在

import os 
print os.path.exists('/Users/wenjun/Downloads/ceshi')

如果存在返回 true 否则返回 false

3.Shelve库

Shelve 可以读写字典

import shelve

f = shelve.open('file')
f['baidu'] = 'www.baidu.com'
f['qq'] = 'www.qq.com'
f['163'] = 'www.163.com'
print f
f.close
g = shelve.open('file')
print g

4.cPickle

用来读写对象

import cPickle

f = open('file1','w')
obj1 = 2015,"upyun",[1,2,3,4],{"pyhon":100,"java":200}
obj2 = ['hehe','jjj','cccc']

cPickle.dump(obj1,f)
cPickle.dump(obj2,f)
f.close()

f = open('file1','r')
obj1_r = cPickle.load(f)
print obj1_r
obj2_r = cPickle.load(f)
print obj2_r
f.close()