Python:在字符串中搜索子字符串以进行过滤

时间:2020-08-05 19:35:57

标签: python python-3.x string for-loop search

我正在尝试编写一个功能,该功能可以搜索非常长的文件路径列表(以字符串形式给出)。我希望能够根据它们所在的子目录来组织它们,最后我要打印文件的名称和子目录。例如,这些字符串之一可能如下所示:

file_name = "\\StringA\\StringB\\StringC\\Name.cpp"

其中StringAStringBStringC是子目录,Name.cpp是文件名。

现在使用该函数,如何在不专门搜索字符串的情况下执行此操作,如下所示?我不希望这样,因为有很多选项(〜200个),如果不需要,我不想添加200个if语句。谢谢!

def get_location(file_name):
    if "StringA" in file_name:
        if "StringB" in file_name:
            if "StringC" in file_name:
                name = file_name.replace("\\StringA\\StringB\\StringC\\", "")
                dirA = "StringA"
                dirB = "StringB"
                dirC = "StringC"

    return [dirA, dirB, dirC, name]

2 个答案:

答案 0 :(得分:0)

为什么在分割文件路径时不使用for循环?

file_name = "\\StringA\\StringB\\StringC\\Name.cpp"

li = file_name.split("\\")
print(li)

输出: ['', 'StringA', 'StringB', 'StringC', 'Name.cpp']

答案 1 :(得分:0)

这听起来像是一个问题,您想使用正则表达式[0]来匹配Name.cpp之前的字符串中的所有内容,然后对该标记集进行操作。找到匹配项后,您可以使用os.path将文件路径分成其组成目录。

[0] https://docs.python.org/3/library/re.html

相关问题