看一下文件夹



我试图使此脚本通过我正在查看的目录进行循环,一旦它通过了验证。

代码检查文件夹名称(由' - '(是否由数字组成,以及这些数字是否总共长5个字符。一旦此检查已经完成了,我希望我的代码通过该文件夹循环。

任何人可以帮我吗?

到目前为止,这是我的代码:

directory = r'\cd3SFTP'
for folder in os.listdir(directory):
    folder = folder.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:
        print folder

如您所知,如果您有文件夹名称,则可以使用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

这是一个代码,递归抓取您的文件夹并打印以数字开头的文件夹名称,并且长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 

您告诉您要检查文件夹(不是文件(,因此我们需要跳过文件。这是通过在上述代码中使用os.path.isdir第3行完成的。
每个 subfolder 均被打印,以防万一它的parrent满足了从数字开始的条件,并且长5个字符。

我在Ubuntu 16.04上检查并运行了上述代码,并且效果很好。

祝你好运:(

相关内容

最新更新