我试图解析一些目录并识别没有特定正确模式的文件夹。让我们举例说明:
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
谢谢,
答案 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)