python 文件处理 -- 03 文件处理模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 文件处理 -- 03 文件处理模块相关的知识,希望对你有一定的参考价值。
1.os模块
1.1作用
文件目录管理、进程管理
http://www.cnblogs.com/now-fighting/p/3531464.html
1.2常用
os.name--判断现在正在使用的平台。Windows--nt; Linux--posix
os.getcwd()--得到当前工作的目录。
os.listdir(path)--指定所有目录下所有的文件和目录名,返回list。
os.remove(path)--删除指定文件
os.mkdir(path [, mode=0777])--创建目录
os.makedirs(path [, mode=0777])--递归创建目录
os.path.isfile(path)--判断指定对象是否为文件。是返回True,否则False
os.path.isdir(path)--判断指定对象是否为目录。是True,否则False。
os.path.exists(path)--检验指定的对象是否存在。是True,否则False.
os.path.split(path)--返回路径的目录和文件名,元组。例:
1 import os 2 3 import sys 4 5 6 7 if __name__ == "__main__": 8 9 print os.path.realpath(sys.argv[0]) 10 11 print os.path.split(os.path.realpath(sys.argv[0])) 12 13 print os.path.split(os.path.realpath(sys.argv[0]))[0] 14 15 16 17 ***执行结果 18 19 /home/jihite/ftp/del.py 20 21 (‘/home/jihite/ftp‘, ‘del.py‘) 22 23 /home/jihite/ftp 24 25 26 27 os.system(command)——执行shell命令。例: 28 29 >>> os.system("echo ‘hello world!‘") 30 31 ‘hello world!‘ 32 33 0 34 35 注意:此处运行shell命令时,如果要调用python之前的变量,可以用如下方式: 36 37 var=123 38 39 os.environ[‘var‘]=str(var) //注意此处[]内得是 “字符串” 40 41 os.system(‘echo $var‘)
os.chdir(path)--改变目录到指定目录
os.path.getsize(filename)--获得文件的大小,如果为目录,返回0
os.path.join(path, name)--连接目录和文件(目录)名。
os.walk(path)--递归遍历某文件夹(包括子文件夹)
walk(top, topdown=True, onerror=None, followlinks=False)
1 >>> os.getcwd() 2 3 ‘E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle‘ 4 5 >>> for dir_path,dir_name,file_names in os.walk(os.getcwd()): 6 7 ... print ‘*****dir_path\\n‘ 8 9 ... print dir_path 10 11 ... print ‘*****dir_name\\n‘ 12 13 ... print dir_name 14 15 ... print ‘*****file_name\\n‘ 16 17 ... print file_names 18 19 ... 20 21 *****dir_path 22 23 24 25 E:\\yc_study\\python\\study_imooc\\file_handle 26 27 *****dir_name 28 29 30 31 [‘1‘] 32 33 *****file_name 34 35 36 37 [‘1.txt‘, ‘argv.py‘, ‘create_utf_8.txt‘, ‘helloworld.py‘, ‘unicode_test.txt‘] 38 39 *****dir_path 40 41 42 43 E:\\yc_study\\python\\study_imooc\\file_handle\\1 44 45 *****dir_name 46 47 48 49 [‘2‘] 50 51 *****file_name 52 53 54 55 [] 56 57 *****dir_path 58 59 60 61 E:\\yc_study\\python\\study_imooc\\file_handle\\1\\2 62 63 *****dir_name 64 65 66 67 [‘3‘] 68 69 *****file_name 70 71 72 73 [] 74 75 *****dir_path 76 77 78 79 E:\\yc_study\\python\\study_imooc\\file_handle\\1\\2\\3 80 81 *****dir_name 82 83 84 85 [] 86 87 *****file_name 88 89 90 91 [] 92 93
2.shutil模块
2.1作用
移动、复制、打包、压缩、解压
http://blog.csdn.net/xmnathan/article/details/36217631
2.2常用命令
shutil.rmtree("dir")--删除目录。空目录、有内容的目录都可以删
copyfile(src, dst) # 拷贝文件
复制文件内容(不包含元数据)从src到dst。
DST必须是完整的目标文件名。
如果src和dst是同一文件,就会引发错误shutil.Error。
dst必须是可写的,否则将引发异常IOError。
如果dst已经存在,它会被替换。
特殊文件,例如字符或块设备和管道不能使用此功能,因为copyfile会打开并阅读文件。
src和dst的是字符串形式的路径名。
copyfile()调用了底函数层copyfileobj()。
shutil.copyfile(‘shutil_copyfile.py‘, ‘shutil_copyfile.py.copy‘)
copyfileobj(fsrc, fdst, length=16384) # 将文件内容拷贝到另一个文件
需要引入StringIO模块才能使用
复制文件内容(不包含元数据)从类文件对象src到类文件对dst。
可选参数length指定缓冲区的大小,负数表示一次性读入。
默认会把数据切分成小块拷贝,以免占用太多内存。
注意:拷贝是从fsrc的当前文件开始。
copy(src, dst)
复制文件src到文件或目录dst。
权限位也会复制。
如果dst是目录,使用src相同的文件名创建(或覆盖)。
src和dst的是字符串形式的路径名。
os.mkdir(‘example‘)
print ‘BEFORE:‘, os.listdir(‘example‘)
shutil.copy(‘shutil_copy.py‘, ‘example‘)
copy2(src, dst)
类似shutil.copy,元数据也复制。
实际上先调用shutil.copy,然后使用copystat。
shutil.copy2(‘shutil_copy2.py‘, ‘example‘)
copytree(src, dst, symlinks=False, ignore=None) # 递归复制
Recursively copy a directory tree using copy2().
3.glob模块
可以查找符合自己目的的文件,类似于Windows下的文件搜索,而且也支持通配符,*,?,[]这三个通配符,*代表0个或多个字符,?代表一个字符,[]匹配指定范围内的字符,如[0-9]匹配数字。
3.1glob.glob(path)
Return a list of paths matching a pathname pattern.
3.2glob.igblob()
Return an iterator which yields the paths matching a pathname pattern.
1 >>> import os 2 3 >>> os.chdir(r‘E:\\yc_study\\python\\study_imooc\\file_handle‘) 4 5 >>> os.getcwd() 6 7 ‘E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle‘ 8 9 >>> import glob 10 11 >>> os.listdir(os.getcwd()) 12 13 [‘1‘, ‘1.txt‘, ‘argv.py‘, ‘create_utf_8.txt‘, ‘helloworld.py‘, ‘unicode_test.txt‘] 14 15 >>> glob.glob(r‘%s\\*.py‘ % os.getcwd()) 16 17 [‘E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle\\\\argv.py‘, ‘E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle\\\\helloworld.py‘] 18 19 >>> glob.glob(r‘%s\\*.txt‘ % os.getcwd()) 20 21 [‘E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle\\\\1.txt‘, ‘E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle\\\\create_utf_8.txt‘, ‘E:\\\\yc_study\\\\python\\\\study_imooc\\\\file_handle\\\\unicode_test.txt‘]
1 >>> glob.iglob(r‘%s\\*.txt‘ % os.getcwd()) 2 3 <generator object iglob at 0x000000000256AF78> 4 5 >>> for i in glob.iglob(r‘%s\\*.txt‘ % os.getcwd()): 6 7 ... print i 8 9 ... 10 11 E:\\yc_study\\python\\study_imooc\\file_handle\\1.txt 12 13 E:\\yc_study\\python\\study_imooc\\file_handle\\create_utf_8.txt 14 15 E:\\yc_study\\python\\study_imooc\\file_handle\\unicode_test.txt
4.python处理各类文件
4.1ConfigParse模块读取配置文件(.ini)
基本使用&Unicode编码问题
http://www.cnblogs.com/victorwu/p/5762931.html
深度解读
http://www.cnblogs.com/yyds/p/6627208.html
4.2python处理xml文件
http://www.cnblogs.com/yyds/p/6627208.html
以上是关于python 文件处理 -- 03 文件处理模块的主要内容,如果未能解决你的问题,请参考以下文章
Python学习第38天(文件处理,ossyspickle模块复习)