如何迭代循环

时间:2017-10-17 10:37:27

标签: python

我已编写此代码来迭代文件0-100。问题是当找不到日志文件0时它不会进入下一个文件。

我尝试使用return i +1这不起作用,因为我不熟悉编码我不知道如何继续。如何忽略空文件并继续下一步。我应该保留一个柜台吗?

import os

path = "C:\\Users\\Bindu\\Documents\\Thesis\\lfiles\\"

list = os.listdir(path)  # dir is your directory path
number_files = len(list)
print(number_files)
try:
      for i in range(0, 100):
        path2 = "data." + str(i) + "\\Log." + str(i)
        file = path + path2

        f = open(file)
        if not os.path.exists(path2):
            with open(path2) as fi:
                if not fi.read(3):  # avoid reading entire file.
                    print("File is empty")

except Exception as e:
     raise SystemExit("File empty")

2 个答案:

答案 0 :(得分:0)

不要在except块中使用SystemExit(" File Empty")而是使用print(" File Empty")。

答案 1 :(得分:0)

您的代码会在0100之间循环播放,而不是必需的。 您的代码应如下所示:

import os
import traceback

path = "C:\\Users\\Bindu\\Documents\\Thesis\\lfiles\\"

try:
      for file in os.listdir(path):
        file = path + file

        f = open(file)
        with open(path2) as fi:
            if not fi.read(3):  # avoid reading entire file.
                print("File is empty")

except Exception as e:
     print(traceback.format_exc())

关于listdir的说明:

  

os.listdir(path)返回包含条目名称的列表   path给出的目录。该列表按任意顺序排列。确实如此   不包括特殊条目'。'和' ..'即使他们在场   在目录中。

因此type(os.listdir('.'))会给<type 'list'>,您可以迭代结果。