如何解决目录的Python正则表达式打印列表
我有一个目录列表作为python中的列表,其中包含以下数据:
/a
/a/b
/a/b/1
/a/b/2
/a/b/3
/a/c
/a/c/1
/a/c/2
/a/c/3
/a/d
/a/d/1
/a/d/2
/f
/f/g
/f/g/h
/f/g/i
/f/g/j
我想以以下格式显示输出:
/a
/b
/1
/2
/3
/c
/1
/2
/3
/d
/1
/2
/f
/g
/h
/i
/j
我正在使用以下python函数,但它输出的输出不一致:
def formatVFS(lst):
for line in lst:
l1 = list(lst)
l2 = []
if re.search(r'^/\w+',line) != None:
temp = re.search(r'^/\w+',line).group()
print '\t\t',temp
for line2 in l1:
if line2.startswith(temp):
lst.remove(line2)
line2 = line2.replace(temp,'')
if line2!= '':
l2.append(line2)
print '\t\t\t',line2
formatVFS(l2)
有什么建议吗?
解决方法
请尝试下面的程序,该程序搜索并用制表符替换不在行尾的\/\w+
。假设文件夹按预期顺序排列。如果没有,您可以在显示之前对其进行排序。
import re
l=["/a","/a/b","/a/b/1","/a/b/2","/a/b/3","/a/c","/a/c/1","/a/c/2","/a/c/3","/a/d","/a/d/1","/a/d/2","/f","/f/g","/f/g/h","/f/g/i","/f/g/j"]
for i in l:
print(re.sub(r"\/\w+(?=\/(?!$))","\t",i))
输出
/a
/b
/1
/2
/3
/c
/1
/2
/3
/d
/1
/2
/f
/g
/h
/i
/j
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。