Python中文
首页
教程
问答
标签
搜索
登录
注册
python递归比较两个目录并标记等价的structu
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在stackoverflow中读过许多与python比较目录相关的问题。不过,我现在的问题有点不同。<br/> 我有两个目录,其中包含两个不同版本的发布包内容。现在我想比较一下,以确保内容是相同的。<strong>但是</strong>很少有文件将版本名嵌入其中。现在,哪种方法是比较它们并得出结论的最佳方法(除了版本差异,所有文件都匹配)。在</p> <hr/> <p>例如:<br/> V1R1C1版本包含如下目录结构</p> <pre><code>pmt> find . -name "*" . ./c1 ./c1/c2 ./c1/c1_V1R1C1.cfg ./a1 ./a1/a1_V1R1C1.cfg ./a1/a2 ./a1/a2/a1a2_V1R1C1.cfg ./b1/a_best_file.txt ./b1/b2/a_test_file.txt ./b1/b2/b1b2_V1R1C1.cfg ./a_V1R1C1.cfg </code></pre> <p>版本<strong>V2R3C1</strong>可能包含以下结构</p> ^{pr2}$ <hr/> <p>在上述情况下,程序必须将其标记为<strong>等价的</strong>结构。在</p> <p>我能想到一些解决方案-例如,递归地将两个目录结构读入缓存(dict),翻录版本信息并进行比较等等,但是看起来并不是一个完全有效的机制,因为两个原因1。它没有使用内置的目录比较2,多次读取/删除/比较是有一定成本的(尤其是对于巨大的目录树结构)。在</p> <p>我正在寻找的想法,是简单和有效的比上面的一个。在</p> <hr/> <p>附言:<br/> 1如果有任何差异(除了与上述示例不同的版本),我想使用左/右等来获得不同的列表。<br/> 2我们可以假设prefore hand是两个目录中的版本名(比如第一个是V1R1C1,第二个是V2R3C1)。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>使用集合比较怎么样?在</p> <pre><code>set((remove_version(filepath) for filepath in iter_file(dic1))) == set((remove_version(filepath) for filepath in iter_file(dic2))) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?
10 回答
当用户登录到站点时,如何显示不同的导航栏
7 回答
当用户登录时,在Flask中向用户显示处理结果
7 回答
当用户的Flask会话结束时,我如何从Redis后端中移除所有Celery结果?
1 回答
当用户的Okta配置文件字段当前为blan时,更新该字段
1 回答
当用户的付款逾期2天时,从Django模型检索数据
7 回答
当用户的消息以问号结尾时,如何让机器人说些什么?
4 回答
当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?
2 回答
当用户确定打印数量时,使用Matplotlib打印动画
8 回答
当用户离开时是否可以删除整个网页?
7 回答
当用户给出一个单词时如何打印?
10 回答
当用户继续更改TKin中的值(使用trace方法)时,使用Entry并更新输入的条目
6 回答
当用户编辑表单字段时,从Django时间字段中删除秒数
9 回答
当用户被更改时,消息不会来自web套接字
2 回答
当用户访问表单时,如何使表单为只读,而不具有更改权限
1 回答
当用户试图更改对象的值时,使用描述符类引发RuntimeError
6 回答
当用户调整GUI的大小时,是否有方法更改GUI内容的大小?
8 回答
当用户调整风的大小时,pythontkinter小部件的大小会不均匀
7 回答
当用户购买某个类别时,是否查找其他类别的销售?
4 回答
当用户转到上一页时,Django和芹菜插入操作
8 回答