Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环遍历非无和非空目录_Python_Python 3.x_List_Directory - Fatal编程技术网

Python 循环遍历非无和非空目录

Python 循环遍历非无和非空目录,python,python-3.x,list,directory,Python,Python 3.x,List,Directory,给定两个目录,例如: dirA=getTrainingDir() dirB=getTestingDir() 现在,如果这两个目录不是None,也不是空字符串,我想循环遍历它们 我现在做的是: data_directories=[] if dirA: data_directories.append(dirA) if dirB: data_directories.append(dirB) for data_directory in data_directories: ... 是否有更

给定两个目录,例如:

dirA=getTrainingDir()
dirB=getTestingDir()
现在,如果这两个目录不是None,也不是空字符串,我想循环遍历它们

我现在做的是:

data_directories=[]
if dirA:
  data_directories.append(dirA)
if dirB:
  data_directories.append(dirB)
for data_directory in data_directories:
  ...

是否有更优雅的语法用于此目的?

没有更好的方法,但您可以使用以下内容:

if any([dirA,dirB])
或:


没有更好的方法可以做到这一点,但您可以使用以下方法:

if any([dirA,dirB])
或:

您可以使用筛选方法:

您可以使用筛选方法:


你想把你的两个ifs压缩成一条更优雅的线,或者是for循环?@CIsForCookies不仅如此,这是一个更一般的问题,任何可以达到同样目的的优雅方式你想把你的两个ifs压缩成一条更优雅的线,或者是for循环?@CIsForCookies不仅如此,这是一个更一般的问题,任何优雅的方法都可以达到同样的目的,任何[dirA,dirB]都是真的,如果其中任何一个dir的计算结果是truthy,但它不知道是哪一个@兄弟语法,但如果没有,你不需要检查所有的语法。我说这不是更好,只是更好。如果任何一个dir的计算结果是truthy,那么任何[dirA,dirB]都将是真的,但它不知道是哪一个@兄弟语法,但如果没有,你不需要检查所有的语法。我说不是更好,只是更好。
dirA = 'training_dir'
dirB = None

data_directories = list(filter(bool, [dirA, dirB])) # ['training_dir']