search.py
功用:检索path目录下,包含filename的文件,并将其移动到newpath下相同名称的文件夹内
入参如下:
path:所要检索的目录
filename:文件名匹配字符
newpath:新路径
import os
import sys
import shutil
##Search the file has this filename which is in this path, and if has then copy it to the newpath with the same parent direction.
def search(path, filename, newpath):
queue = []
queue.append(path);
parent = ''
while len(queue) > 0:
tmp = queue.pop(0)
if (os.path.isdir(tmp)):
for item in os.listdir(tmp):
queue.append(os.path.join(tmp, item))
parent = os.path.basename(tmp)
print 'parent = '+parent
elif (os.path.isfile(tmp)):
name = os.path.basename(tmp)
print 'name = ' + name
dirname = os.path.dirname(tmp)
full_path = os.path.join(dirname, name)
queuetmp = []
queuetmp.append(dirname)
parent = os.path.basename(queuetmp.pop(0))
if filename in name:
des_path = newpath + '/' + parent
print 'dest_path = ' + des_path + ' ; parent =' + parent
if os.path.exists(des_path):
shutil.move(full_path, des_path)
else:
os.mkdir(des_path)
shutil.move(full_path, des_path)
search(sys.argv[1], sys.argv[2], sys.argv[3])
使用方法 python search.py path name newpath