【发布时间】:2018-05-22 08:09:35
【问题描述】:
我想扫描当前和更深的文件夹以搜索指定的文件。
上面是我的测试环境。
[~/test]$ls
NCRAM955E/ RNCMST954E/ RNCMST957E/ test.py*
下面是我的代码:
import os, shutil, sys, getopt, re
def GetOption(argv):
FileDir = ""
Roptarget = ""
Dirtarget=[]
try:
opts, args = getopt.getopt(argv, "hD:F:",["FileDir=", "Roptarget="])
except getopt.GetoptError:
print ('Error arg input -D <FileDir> -F <Roptarget>')
sys.exit(2)
for opt, arg in opts:
if opt == "-h":
print ('Error arg input -D <FileDir> -F <Roptarget>')
sys.exit()
elif opt in ("-D", "--FileDir"):
FileDir = arg
Dirtarget = FileDir.split("|")
elif opt in ("-F", "--Roptarget"):
Roptarget = arg
return(Dirtarget, Roptarget)
#Below self defined function need update
def detect_walk(file_dir):
L_0 = []
L = []
DirList,Ropfile = GetOption(sys.argv[1:])
print("DirList = " + str(DirList))
print("Ropfile = " + Ropfile)
for root, dirs, files in os.walk(file_dir):
for file in files:
L_0.append(file)
if " ".join(L_0).find(Ropfile):
print("target rop file = " + Ropfile)
L.append(os.path.join(root, Ropfile))
return(L)
if __name__ == '__main__':
file_path = "/home/test/"
List = detect_walk(file_path)
我的期望输出,例如
如果我输入python test.py -D "RNCRAM955E|RNCMST954E" -F "^A20180520.1300+0300-1315+0300*RNCMST954E_statsfile.xml$"
程序只会搜索文件夹RNCRAM955E和RNCMST954E,当找到指定的文件匹配模式时,它会显示目标文件的完整路径。
我是蟒蛇新生。请给我一些建议。谢谢你。
【问题讨论】:
标签: python-3.x os.walk