首页 > 解决方案 > 将 subproccess.os 与正则表达式结合以获得过滤后的目录/文件列表

问题描述

我是编码新手,在使用带有正则表达式的 subprocess.os 时遇到困难。我正在尝试获取以大写 C 开头的所有文件和目录的列表。这就是我到目前为止所得到的......

home = subprocess.os.path.expanduser("~")

FilesDirsStartingWithC = []

for (dir, subdir, files) in subprocess.os.walk(home):
    match = re.findall(r'^C\w+')
    for i in match:
        FilesDirsStartingWithC.append(i)
print(FilesDirsStartingWithC)

我意识到第一个 for 语句和 append 语句之间的部分是错误的,但我不知道如何修复它。任何帮助将非常感激!谢谢 :)

标签: pythonregexfor-loopsubprocessfile-search

解决方案


使用匹配列表扩展您的:

home = subprocess.os.path.expanduser("~")

FilesDirsStartingWithC = []

for (dirs, subdirs, files) in subprocess.os.walk(home):
    FilesDirsStartingWithC.extend(re.findall('^C\w+', ''.join(dirs)))
    FilesDirsStartingWithC.extend(re.findall('^C\w+', ''.join(subdirs)))
    FilesDirsStartingWithC.extend(re.findall('^C\w+', ''.join(files)))
print(FilesDirsStartingWithC)

推荐阅读