首先引入模块:import os
判断是否存在:
os.path.exists(‘filename/dirname’)//文件/文件夹都可以
判断类型:
os.path.isdir(‘filename')//判断是否是目录
os.path.isfile(‘filename') //判断是否是文件
os.path.islink(‘filename') //判断是否是链接
新建/打开文件:
fp=open(‘filename’, ‘mode’)
mode:
w 以写方式打开,若文件存在,先清空
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )
关闭文件:
fp.close()
文件属性:
fp.name//文件名
fp.closed//文件是否关闭
fp.mode//文件打开模式
fp.encoding//文件编码方式
fp.newlines//文件用到的换行模式,是一个tuple
读文件:
fp.read(size)//读入固定字节数
fp.readline()//读一行
fp.readline(size)//读一行的前size个字节数
fp.readlines()//读文件的所有行,每行作为一个list的项,返回该list,内部通过调用readline()实现
fp.readlines(size)//读文件的所有行,直到读完或者总共读够size字节结束
写文件:
fp.write('string')//不会另外添加换行符
fp.writelines('string')//不会另外添加换行符
新建目录:
os.makedirs('dirname')//递归创建多级目录
列出目录下的所有内容:
os.listdir('dirname')
删除文件:
os.remove('filename')
删除目录:
os.rmdir('dirname')//删除空目录
os.removedirs('dirname')//递归删除空目录
递归删除路径下的所有文件和文件夹:
方法一:使用shutil模块:
import shutil
shutil.rmtree('dirname')
方法二:
# Delete everything reachable from the directory, assuming there are no symbolic links.
# CAUTION: This is dangerous!
# For example, if 'dirname' == '/', it could delete all your disk files.
import os
for root, dirs, files in os.walk('dirname', topdown=False):
for name in files:
os.remove(os.path.join(root, name))
for name in dirs:
os.rmdir(os.path.join(root, name))
对目录下特定类型的文件进行操作:
方法一:使用fnmatch模块:
import fnmatch
import os
for fileName in os.listdir ( 'dirname' ):
if fnmatch.fnmath (fileName, '*.txt' ): //'*'表示任意长度的字符串;'?'表示1个字符
print open (fileName).read()
elif fnmatch.fnmatch ( fileName, '*.exe' ):
print fileName
方法二:使用glob模块:
import glob
for fileName in glob.glob ( '*.txt' ):
print 'Text file.'
将缓冲区写入硬盘:
fp.flush()
返回文件当前位置:
fp.tell()//以文件开头为原点
返回文件下一行:
fp.next()//文件指针也会移到下一行,相当于读一行
将文件指针标记到固定位置:
fp.seek(offset)//以文件开头为原点
fp.seek(offset,mode)//mode=0:以文件开头为原点;mode=1:以当前位置为原点;mode=2:以文件末尾为原点
将文件裁成规定的大小:
fp.truncate()//将文件指针标记之后的内容裁掉
fp.truncate(size)//将文件裁至只留前size字节;若size比文件大,依据系统可能会不改变,也可能是用0(或随机内容)把文件补到size大小
获取当前运行程序路径:
str=os.getcwd()
更改当前目录:
os.chdir('dirname')
参考
http://www.cr173.com/html/18777_1.html
http://blog.163.com/loveyangmao@126/blog/static/6967414320111024000834/
http://blog.csdn.net/adupt/article/details/4435615
http://maincoolbo.iteye.com/blog/626655
http://www.cnblogs.com/yuxc/archive/2011/08/01/2124012.html