python – 在两个文件夹中查找名称的相同初始部分的文件

python – 在两个文件夹中查找名称的相同初始部分的文件,第1张

概述我用listdir读取两个文件夹中的文件: from os import listdir list_1 = [file for file in listdir("./folder1/") if file.endswith(".csv")]list_2 = [file for file in listdir("./folder2/") if file.endswith(".json")] 现在我 我用Listdir读取两个文件夹中的文件:

from os import Listdir List_1 = [file for file in Listdir("./folder1/") if file.endswith(".csv")]List_2 = [file for file in Listdir("./folder2/") if file.endswith(".Json")]

现在我有两个清单:

List_1 = ['12_a1_pp.csv','32_a3_pp.csv','45_a17_pp.csv','81_a123_pp.csv']List_2 = ['12_a1.Json','32_a3.Json','61_a54.Json']

我想找到相应的两个子列表,其中包含名称的初始部分相同的那些文件.换一种说法:

List_1b = ['12_a1_pp.csv','32_a3_pp.csv']List_2b = ['12_a1.Json','32_a3.Json']

我怎样才能做到这一点?

PS注意,Listdir部分可能无关紧要回答问题.我只包括它,因为如果Listdir的结果保证按字母顺序排列,那么这可能有助于遍历这两个列表.当然,在这个简单的例子中,列表很短,但在实际使用案例中,它们汇集了数百个文件.

解决方法 更加pythonic的方法将使用&集合的(交集)运算符:

common = set(x[:-7] for x in List_1) & set(x[:5] for x in List_2)List_1b = [x + '_pp.csv' for x in common]List_2b = [x + '.Json' for x in common]

编辑:如果你需要拆分每个列表的特定字符(请参阅注释),这里是一个更新版本(搜索List_1中的最后一个’_’并搜索List_2中的最后一个’.’):

common = set(x[:x.rindex('_')] for x in List_1) & set(x[:x.rindex('.')] for x in List_2)
总结

以上是内存溢出为你收集整理的python – 在两个文件夹中查找名称的相同初始部分的文件全部内容,希望文章能够帮你解决python – 在两个文件夹中查找名称的相同初始部分的文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1192017.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存