Python 解析目录并检测意外空白

Python 解析目录并检测意外空白,python,directory,string-parsing,Python,Directory,String Parsing,我试图解析一些目录,并识别没有特定正确模式的文件夹。让我们举例说明: Correct: Level1\\Level2\\Level3\\Level4_ID\\Date\\Hour\\file.txt Incorrect: Level1\\Level2\\Level3\\Level4\\Date\\Hour\\file.txt 请注意,不正确的一个没有\ u ID。我的最终目标是解析数据,替换“\”作为要为MS excel导入的分隔符: Level1;Level2;Level3;Level4;I

我试图解析一些目录,并识别没有特定正确模式的文件夹。让我们举例说明:

Correct: Level1\\Level2\\Level3\\Level4_ID\\Date\\Hour\\file.txt
Incorrect: Level1\\Level2\\Level3\\Level4\\Date\\Hour\\file.txt
请注意,不正确的一个没有\ u ID。我的最终目标是解析数据,替换“\”作为要为MS excel导入的分隔符:

Level1;Level2;Level3;Level4;ID;Date;Hour;file.txt
Level1;Level2;Level3;Level4; ;Date;Hour;file.txt
我已成功解析了所有正确的数据,执行以下步骤: 让文件成为我所有目录的列表

for i in arange(len(files)):
    processed_str = files[i].replace(" ", "").replace("_", "\\")
    processed_str = processed_str.split("\\")
我的问题是使用相同的脚本检测Level4文件夹是否在下划线后有ID,因为“files”包含正确和不正确的目录。 问题是,由于不正确的列没有ID,在执行拆分(“\”)后,我最终将列混合在一起,而没有在Level4和Date之间进行平衡:

 Level1;Level2;Level3;Level4;Date;Hour;file.txt
谢谢,

在拆分目录后进行“\u ID”检查,这样您就不会丢失信息。假设目录名本身不包含转义反斜杠,并且ID字段始终处于级别4(从1开始计数),则应该这样做:

for i in arange(len(files)):
    parts = files[i].split("\\")
    if parts[3].endswith("_ID"):
        parts.insert(4, parts[3][:-len("_ID")])
    else:
        parts.insert(4, " ")
    final = ";".join(parts)

谢谢,效果很好。我应该说ID是一个数字,所以我的代码基于您的代码,并使用isDigit()进行了修改。