Python'if ... continue'意外地将控制返回到当前循环的父循环

时间:2016-11-16 15:16:26

标签: python file csv filenames matching

我在Visual Studio中使用Python,在调试模式下单步调试代码。检查第一个if..continue语句后,控制按照我的预期返回for file..

但是,在第二次传递时,当它下降到下一个if..continue语句时,控制返回到父for dir循环的开始,当我希望它返回到{{1再次。目标是忽略任何名称为for file..的子目录和csv文件(我希望我不必深入学习其他模式匹配的东西 - 如果可能的话,需要获取当前的小任务照顾):

_*.csv

1 个答案:

答案 0 :(得分:3)

根据我的理解 - 你有一个os.listdir目录列表和每个目录中的文件列表。

理想情况下,您应该将一个目录加载到currentDir - >这个目录应该遍历每个文件。

我相信控制流会受到影响,因为您要为所有目录分配相同的currentDir。

试试这个:

for dir in os.listdir(masterDirPath):    
    currentDir = masterDirPath + dir

  # iterate through csv logs within current data folder, aggregating data
  ##### indent this part of your code #####

     for file in os.listdir(currentDir):
        path = os.path.join(currentDir, file)

        if os.path.isdir(path):
           # skip directories
           continue

        if file.startswith('_'):
           # skip custom files
           continue

        if file.endswith(".csv"):
          # open log file
          .
          .
          .