要在python中打印特定的文件夹名称?

时间:2014-08-18 10:18:15

标签: python linux python-3.x scripting coding-style

我在python中创建了一个脚本,它扫描所有文件夹和子文件夹,然后打印所有以Hello开头的文件夹和子文件夹。

现在我需要实现一个更改,即我应该能够打印任何包含Hello字样的文件夹。喜欢这个词可能是hiHello或abcHelloxyz。所以这个文件夹也必须打印出来。我想需要使用grep命令。

import os

if os.path.isdir('/'):
    for root, dirs, files in os.walk('/'):
        for name in dirs:
             if name.startswith(("hello")):
                 print ("\n\nFile Name: "+ name)
                 name = os.path.abspath(os.path.join(root, name)
)       
                 print ("Path     :"+name)

3 个答案:

答案 0 :(得分:1)

您可以使用'Hello'测试dirname中的'Hello' in dirname是否为子字符串:

In [1]: dirname = 'hiHello'

In [3]: 'Hello' in dirname
Out[3]: True

In [4]: dirname.startswith('Hello')
Out[4]: False

答案 1 :(得分:0)

您可以尝试使用正则表达式:

dirlist = ['somedir', 'Hello', 'dirHello', 'hiHello', 'abcHello', 'randdir']
hellodir = re.findall('.*Hello.*', '\n'.join(dirlist))
print hellodir
>>['Hello', 'dirHello', 'hiHello', 'abcHello']

答案 2 :(得分:0)

我管理了这个改变。 我需要将输出存储在特定的文件夹中。我应该使用shutil.move命令吗?

导入os

如果os.path.isdir('/'):         对于root,dirs,os.walk中的文件('/'):                 在dirs中的名字:                          if(name.find((“hello”))!= - 1):                                  print(“\ n \ n文件名:”+名称)                                  name = os.path.abspath(os.path.join(root,name) )
                                 print(“路径:”+名称)