- 论坛徽章:
- 0
|
我是做了个在盘符下批量查找拷贝文件的程序
比较简单
原先做的时候没想到要查找的盘符有可能是几个盘符一块查找
而且现在又有个问题
就是我写的程序因为使用到了os.path.walk
当我要查找的盘符下面的文件数量巨多的时候查询文件就很慢了
以下是我的程序
import os,shutil
sn=[i[:-1] for i in file('log.txt')] log.txt是输入我要批量查找的文件名称 一行一个关键字 都是8位的 SN是读取这个LOG.TXT得出一个sn的list
susdown=open('sn.txt','w+') 创建一个SN.TXT 里面将写入 已经查找拷贝成功的文件名
faidown=open('fail.txt','w+') 创建一个fail.TXT 里面将写入 没有查找到的文件名
def copylog(arg,directory,files): 拷贝文件的函数
for logname in files:
logpath=os.path.join(directory,logname)
#print logname[:8]
if arg==logname[:8]:
print logpath
shutil.copy('%s' % (logpath),'.')
susdown.write('%s' % (arg))
susdown.write('\n')
break
else:
continue
for a in sn: 循环sn这个list
os.path.walk('D:/',copylog,'%s' % (a)) 在D盘符下查找拷贝文件
susdown.close()
sue=[i[:-1] for i in file('sn.txt')] 读取查找成功的文件的sn.TXT
fai=list(set(sn)-set(sue)) 得到没有查找到的文件名列表
for b in fai:
faidown.write('%s' % (b))
faidown.write('\n')
faidown.close()
请问哪位能解决我的程序的效率问题
或者给出更好的解决方法 谢谢了 |
|