[英]How can I accurately search a directory with elements from a text file?
对 python 来说相当新。 我正在尝试使用由文本文件组成的列表来搜索文件和文件夹的目录。 它在一定程度上起作用,但前提是搜索元素位于文件/文件夹名称的开头,因为我正在使用 .startswith()。
我正在使用的代码如下。
我认为正则表达式可能是要走的路,但似乎无法弄清楚。
任何帮助表示赞赏。
谢谢。
import os
def data_cleansing(path):
dirscount = 0
filescount = 0
with open("Y:\Admin\Data Cleansing\DCList.txt","r") as f:
x = f.readlines()
x = [x.replace("\n","") for x in x]
#print(x)
for root, dirs, files in os.walk(path):
for dirs in dirs:
if dirs.startswith(tuple(x)):
dirscount = dirscount + 1
#print(dirscount)
print(os.path.join(dirs))
for root, dirs, files in os.walk(path):
for files in files:
if files.startswith(tuple(x)):
filescount = filescount + 1
#print(filescount)
print(os.path.join(files))
total = (dirscount + filescount)
print(total,"files and folders found in",path,"that need cleansing.")
data_cleansing(r"G:\Processed\failed")
print("*"*70)
data_cleansing(r"G:\Processed\done")
print("*"*70)
data_cleansing(r"S:\Prosort")
print("*"*70)
data_cleansing(r"S:\Prosort_Archive")
这是否符合您的需求?
from os import scandir
find_list = ['Uni', '.doc', 'XML']
path = r"c:\\Autoit\\ForumTests\\"
def scantree(path):
"""Recursively yield DirEntry objects for given directory."""
for entry in scandir(path):
if entry.is_dir(follow_symlinks=False):
yield from scantree(entry.path)
else:
yield entry
if __name__ == '__main__':
for entry in scantree(path):
for pattern in find_list:
if pattern in entry.path:
print(pattern, '-->', entry.path)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.