查看“Python移动指定后缀名的文件”的源代码
←
Python移动指定后缀名的文件
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== 功能需求== 求通过python实现,在指定目录下遍历所有文件,将指定后缀的文件移动到另一指定目录中 ==最终代码== <pre> #!/usr/bin/python #-*- coding: utf-8 -*- #file mvnglog.py evan 记得给权限 # 30 06 * * * /data/mon/mvnglog.py >/dev/null 2>&1 import os,shutil source_dir = '/data/logs/nginx' target_dir = '/data/logs/nginx/oldlog' if not os.path.exists(target_dir): os.makedirs(target_dir, 0755); for root , dirs , files in os.walk(source_dir): for file in files: dirs[:] = [] #忽略当前目录下的子目录分析 不递归 if file.endswith('.gz'): shutil.move( root+os.sep+file, target_dir ) #shutil.copy( root+os.sep+file, target_dir ) #print file </pre> ==知识点== <pre> 一开始想到那个可爱的python 有讲到相关的ow.walk os.walk这个某块是遍历一个目录常用的模块,它返回一个包含3个元素的元祖:dirpath,dirnames,filenames.dirpath是以string字符串形式返回该目录下所有的绝对路径;dirnames是以列表list形式返回每一个绝对路径下的文件夹名字;filesnames是以列表list形式返回该路径下所有文件名字。 还写 if os.path.splitext(i)[1] == '.log': 这种笨蛋的写法 #-*- coding: utf-8 -*- import os, shutil target_dir = '/home/evan/test/new' #假定要拷贝到home目录 x = [ item for item in os.walk('/home/evan/test') ] #os.walk递归地遍历所有子文件夹 #返回的是一个list,list中每一个元素由3个部分:(path, dirs, files) for path, dirs, files in x: for file in files: if file.endswith('.gz'): #找到以gz结尾的,copy之 shutil.copy( path+os.sep+file , target_dir ) ##目录源的文件不能已存在,不然会报错 already exists 移动文件(目录) shutil.move("oldpos","newpos") os.sep 可以取代操作系统特定的路径分隔符。windows下为 '\\' 判断文件或目录是否存在: os.path.exists(r"c:\python\hello.py") --> True import os def getFileName(path): ''' 获取指定目录下的所有指定后缀的文件名 ''' f_list = os.listdir(path) # print f_list for i in f_list: # os.path.splitext():分离文件名与扩展名 if os.path.splitext(i)[1] == '.log': print i if __name__ == '__main__': path = '/home/xx/work/ETS/log/1/1' getFileName(path) import os, shutil target_dir = '/home/evan/test/new' #假定要拷贝到home目录 x = [ item for item in os.walk('.') ] #os.walk递归地遍历所有子文件夹 #返回的是一个list,list中每一个元素由3个部分:(path, dirs, files) for path, dirs, files in x: for file in files: if file.endswith('.sh'): #找到以txt结尾的,copy之 shutil.copy( path+os.sep+file , target_dir ) </pre> ==参考== [[Os.walk()与os.path.walk()]] [http://www.cnblogs.com/CLTANG/archive/2011/11/15/2249257.html Shutil模块介绍和源码解读] https://zhidao.baidu.com/question/402320802.html [http://www.runoob.com/python/att-string-endswith.html Python str endswith] [http://www.runoob.com/python/os-makedirs.html Python os.makedirs() 方法] [http://bbs.chinaunix.net/thread-2329287-1-1.html os.walk 忽略某个目录下的子目录【Python】] [https://ask.helplib.com/1611671 可以忽略目录的python walker ] https://docs.python.org/2/library/stdtypes.html [https://gist.github.com/gnemoug/5408929 查找指定目录下指定扩展名的文件,可以将信息打印和保存到文件中] [http://www.cnblogs.com/nwf5d/archive/2011/03/30/2000245.html python对文件及文件夹的一些操作] [https://gxnotes.com/article/27184.html 在Python中,如何移动文件 ] [http://www.cnblogs.com/funsion/p/4017989.html Python默认模块 os和shutil 实用函数] [https://docs.python.org/2/library/shutil.html shutil — High-level file operations] [[category:python]]
返回至
Python移动指定后缀名的文件
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
我的导航
关于我
shell
python
ops
linuxchina.net
blog.linuxchina
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息