我在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)
答案 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(“路径:”+名称)