Python从定义的路径上删除了不需要的DIRS,以相匹配的列表



我正在尝试将months列表与dir_path IE /scratch/rsyslog_CISCO/匹配,并且如果dir_path包含其他名称,则除months列出了其他名称,只需将其删除。

>

我能够以平坦的格式这样做:

import os
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
dir_path ='/scratch/rsyslog_CISCO/'
for item in next(os.walk(dir_path))[1]:
    if item not in months:
        os.rmdir(dir_path+item)

但是,我希望它在定义和main()函数中涵盖,因此,我试图做的喜欢如下:

import os
def dir_del():
    months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    dir_path ='/scratch/rsyslog_CISCO/'
    for item in next(os.walk(dir_path))[1]:
        if item not in months:
            return dir_path+item
if __name__ == '__main__':
    dir_del()

目录内容如下:

我只需要保留Mar休息删除..

# ls -l /scratch/rsyslog_CISCO
total 16
drwxr-xr-x 2 root root 4096 Mar 15 10:24 KK
drwx------ 2 root root 4096 Mar 13 10:14 Mar
drwxr-xr-x 2 root root 4096 Mar 15 16:33 nofcs
drwxr-xr-x 2 root root 4096 Mar 15 16:33 tlsd

我需要定义一个空列表,并将其匹配到 []的附加列表迟到以在main()函数中调用。

首先,我想您想返回具有所有有效目录的列表。那么您的可能看起来像这样:

import os
def dir_del():
    months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    dir_path = '/scratch/rsyslog_CISCO/'
    valid_dir_paths = []
    for item in next(os.walk(dir_path))[1]:
        if item in months:
          valid_dir_paths.append(dir_path + item)
    return valid_dir_paths
if __name__ == '__main__':
    dir_del()

此方法在您的dir_path中获取所有文件夹,并将有效的文件附加到valid_dir_paths Whoch的列表中。

最新更新