对于昨天那个问题一直恋恋不忘,自己写的总归太浅了。今天在网上无意中发现,python中有提供现成的模块遍历文件目录。当时看到就兴奋了,这不是解决了我的一个大问题么!网上的代码如下:
import os
import os.path
rootdir='./test/'
print "***********"
for parent,dirnames,filenames in os.walk(rootdir):
print "&&&&&&&&&&&&&&"
for dirname in dirnames:
print "parent is:"+parent
print "dirname is"+dirname
for filename in filenames:
print "parent is:"+parent
print "filename is:"+filename
print "the full name of the file is:"+os.path.join(parent,filename)
中间我通过print一些字符来摸清了这个循环的过程。有了这个循环等于我不用做任何事,只要考虑文件名是否符合需要就行了~瞬间有种自己前两天弱爆了的感觉
下面是改进后的代码:
import os
import os.path
rootdir='./test/'
out=open('names.txt','w')
for parent,dirnames,filenames in os.walk(rootdir):
print "**********"
for name in filenames:
if '.txt'==name[-4:]:
out.write(name[:-4]+'\n')
elif '.jpg'==name[-4:]:
out.write(name[:-4]+'\n')
elif '.rm'==name[-3:]:
out.write(name[:-3]+'\n')
else:
continue
for dirname in dirnames:
out.write('*********\n')
改进后的程序能遍历指定目录下的所有文件并提取指定后缀名的文件名存储到names.txt中,突破了昨天只能有两级目录的限制,这样还是有实际意义的,比如说我可以用它来获取某个目录下某种特定类型的所有文件名。当然我前两天做的不好的就是遍历工作,python标准库中是提供了类似的功能的,从这我也体会到了脚本语言的方便之处啊。
转载于:https://blog.51cto.com/409388239/1252274