Python:在字符串中搜索用于筛选的子字符串

2024-09-25 14:29:09 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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]

Tags: 文件函数字符串nameinifcppfile
2条回答

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

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

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

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

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

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

相关问题 更多 >