首页 > 解决方案 > 将目录中的文件名与 Pandas 系列匹配,删除不匹配的文件

问题描述

我在 Python 2.7 上。

我在一个目录中有一堆文件(基本上是 Outlook 电子邮件)。示例文件名:

RE: We have Apple.msg
RE: Orange are in stock.msg
RE: Pick up some cabbage please.msg

我有熊猫系列

Granny Smith Apple
High Quality Orange
Delicious soup

如何遍历目录,找到包含熊猫系列单词的文件名,并删除找不到匹配项的文件?在上面的示例中,RE: Pick up some cabbage please.msg将被删除,就像在 Pandas 系列中发现的那样AppleOrange

编辑:我想实际删除目录中找不到匹配项的文件

标签: pythonpandas

解决方案


可以使用osand listdir,然后str.contains

from os import listdir
from os.path import isfile, join
m = '/' # your path
files_in_directory = [f for f in listdir(m) if isfile(join(m, f))]
files = pd.Series(files_in_directory)

s = pd.Series(["Granny Smith Apple",
"High Quality Orange",
"Delicious soup"])

z = pd.Series(s.str.split().sum())
files.str.contains('|'.join(z))

推荐阅读