这是我当前的脚本,它检查目录中是否有以数字开头的文件夹名称,长度为5位。但是,我现在想检查我刚刚检查过的文件夹的 INSIDE 。请帮帮忙吧?
function dateRangeInDays($start, $end) {
$beginDate =strtotime($start); // or your date as well
$endDate = strtotime($end);
$datediff = $endDate - $beginDate;
return round($datediff / (60 * 60 * 24));
}
答案 0 :(得分:2)
如您所知,如果您有文件夹名称,那么您可以使用os.listdir(folder_name)
来"查看内部"
代码中唯一的问题是,您丢失了当前文件夹的文件夹名称,因为您使用拆分结果覆盖它:
folder = folder.split(' - ')
如果保存原始文件夹名称,则可以调用os.listdir并执行操作:
for folder_name in os.listdir(directory):
folder = folder_name.split(' - ')
#print fn
if 'infognana' in folder or 'sunriseimaging' in folder or 'mydatasolutions' in folder:
continue
if folder[0].isdigit() and len(folder[0]) == 5:
#do something on os.listdir(os.path.join(directory,folder_name))
print folder
答案 1 :(得分:0)
以下是递归抓取您的文件夹并打印以数字开头并且长度为5个字符的文件夹名称的代码。
import os
def check(dir):
for f in [x for x in os.listdir(dir) if os.path.isdir(dir+"/{}".format(x))]:
if any([i in folder_name for i in \
['infognana', 'sunriseimaging', 'mydatasolutions']]):
if f[0].isdigit() and len(f)==5:
print f # print the name of the (sub)folder
check(os.path.join(dir, f) # do the same thing for this subfolder
您告诉您要检查文件夹(不是文件),因此我们需要跳过文件。这是通过在上面的代码第3行中使用os.path.isdir
来完成的
每个子文件夹都会打印以防万一它的parrent满足以数字开头并且长度为5个字符的条件。
我检查并在ubuntu 16.04上运行上面的代码,它工作正常。
祝你好运:)