我已编写此代码来迭代文件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")
答案 0 :(得分:0)
不要在except块中使用SystemExit(" File Empty")而是使用print(" File Empty")。
答案 1 :(得分:0)
您的代码会在0
到100
之间循环播放,而不是必需的。
您的代码应如下所示:
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'>
,您可以迭代结果。