Python常用文件/文件夹操作

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值