我正在尝试编写一个功能,该功能可以搜索非常长的文件路径列表(以字符串形式给出)。我希望能够根据它们所在的子目录来组织它们,最后我要打印文件的名称和子目录。例如,这些字符串之一可能如下所示:
file_name = "\\StringA\\StringB\\StringC\\Name.cpp"
其中StringA
,StringB
和StringC
是子目录,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]
答案 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
将文件路径分成其组成目录。