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()进行了修改。