微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:提供一个字符串,打开文件夹,其中包含文件夹名称中的字符串,然后打开/读取该文件夹中的文件

如何解决Python:提供一个字符串,打开文件夹,其中包含文件夹名称中的字符串,然后打开/读取该文件夹中的文件

我有一个高度分支的文件夹结构,如下所示。我想匹配一个嵌套在其他描述符之间的条形码,并打开/读取该条形码文件夹中的相关文件。每个XXbarcodeXX文件夹的内容基本相同。

First 3 Levels of Directory

我尝试将but thenwith an argument that is resolved to *nothing* reportsos.walk()glob.glob()结合使用,但是没有一个产生正确的文件夹。和os.listdir()刚刚返回了一个空列表,我认为这没有找到任何内容

我没有让它最接近的bc似乎是自上而下遍历每个文件夹,而不是仅仅检查第二级中的文件名称。这花费了太长时间,因为第三和第四级中的某些文件夹具有数百个文件/文件夹。

fnmatch

解决方法

您正在使用的 * 正则表达式中的 re.match 可能会产生错误 (nothing to repeat at position 0),因为它使用了一个没有任何前面标记的量词(零次或多次)。您可以尝试用 '..' + barcode + '..' 替换您的正则表达式。此正则表达式将在任意两个字符之间匹配您预期的 barcode 字符串(行终止符除外)。在命令 os.path.join 中,您可以在同一命令中加入所有路径名称和所需文件,以避免特定操作系统分隔符出现任何问题。

import os
import re

path='dirStructure'
barcode='barcode2'

for dirname,dirs,files in os.walk(path):
    for folds in dirs:
        if re.match('..' + barcode + '..',folds):
            f = open(os.path.join(dirname,folds,'FileOfInterest.txt'),'r')
            print(f.readlines())
            f.close

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。