解析目录并检测意外空白

时间:2015-02-17 21:44:00

标签: python directory string-parsing

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

Correct: Level1\\Level2\\Level3\\Level4_ID\\Date\\Hour\\file.txt
Incorrect: Level1\\Level2\\Level3\\Level4\\Date\\Hour\\file.txt

请注意,不正确的没有_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

谢谢,

1 个答案:

答案 0 :(得分:0)

执行" _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)
相关问题