一. 文件读写
读写文件就是请求操作系统打开一个文件对象,然后通过操作系统提供的接口从这个文件对象中读取数据,或者把数据写入这个文件对象。
1.读文件
try:
f = open('demo1.py', 'r')
print f.read()
finally:
if f:
f.close()
调用read()
会一次性读取文件的全部内容,如果文件有10G,内存就爆了,所以,要保险起见,可以反复调用read(size)
方法,每次最多读取size个字节的内容。另外,调用readline()
可以每次读取一行内容,调用readlines()
一次读取所有内容并按行返回list
。因此,要根据需要决定怎么调用。
如果文件很小,read()
一次性读取最方便;如果不能确定文件大小,反复调用read(size)
比较保险;如果是配置文件,调用readlines()
最方便.
反复调用
write()
来写入文件,但是务必要调用
f.close()
来关闭文件。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用
close()
方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用
close()
的后果是数据可能只写了一部分到磁盘,剩下的丢失了。所以,还是用
with
语句来得保险:
with open('/Users/michael/test.txt', 'w') as f:
f.write('Hello, world!')
在Python中,文件读写是通过
open()
函数打开的文件对象完成的。使用
with
语句操作文件IO是个好习惯。
二. 操作文件和目录
import os
#打印操作系统名字
print os.name
#打印系统详细信息
print os.uname()
#打印环境变量
print os.environ
#获取某个环境变量
print os.getenv('PATH')
#查看当前目录的绝对路径
print os.path.abspath('.')
#创建目录
os.mkdir('test')
#删除目录
os.rmdir('test')
#重命名文件
os.rename('demo1.py','demo11.py')
#删除文件
os.remove('demo11.py')
三. 序列化
pickle 和 json