Python - 可以多次使用glob吗?

时间:2014-06-04 14:04:38

标签: python qgis

我希望用户处理2个不同文件夹中的文件。用户选择 First_Directory 的文件夹和 Second_Directory 的另一个文件夹。如果每次只选择一个目录,则定义每个都有自己的算法并且工作正常。如果用户同时选择两者,则仅处理 First_Directory

两者都包含glob模块,如简化代码所示,我认为问题所在。我的问题是:可以多次使用glob模块,如果没有,是否有替代方案?

##Test=name
##First_Directory=folder
##Second_Directory=folder

path_1 = First_Directory
path_2 = Second_Directory
path = path_1 or path_2

os.chdir(path)

def First(path_1):
output_1 = glob.glob('./*.shp')
#Do some processing

def Second(path_2):
output_2 = glob.glob('./*.shp')
#Do some other processing

if path_1 and path_2:
    First(path_1)
    Second(path_2)
elif path_1:
    First(path_1)
elif path_2:
   Second(path_2)
else:
    pass

2 个答案:

答案 0 :(得分:2)

您可以将功能修改为仅在感兴趣的路径中查找.shp个文件。然后,您可以将该功能用于一个路径或两个路径。

def globFolder(path):
    output_1 = glob.glob(path + '\*.shp')

path1 = "C:\folder\data1"
path2 = "C:\folder\data2"

然后你可以使用那个通用函数:

totalResults = globFolder(path1) + globFolder(path2)

这将结合两个列表。

答案 1 :(得分:1)

我认为通过restructring你的代码可以获得你的目标:

def First(path,check):

  if check:

     output = glob.glob(path+'./*.shp')
  #Do some processing
  else:
     output = glob.glob(path+'./*.shp')
#Do some other processing
 return output
#
#
#
 First(path_1,True)
 First(path_2,False)