首先引入模块: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')