看里面的文件夹

时间:2018-02-09 10:31:12

标签: python python-2.7 listdir

这是我当前的脚本,它检查目录中是否有以数字开头的文件夹名称,长度为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));
}

2 个答案:

答案 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上运行上面的代码,它工作正常。

祝你好运:)