从python中的列表项中删除模式

时间:2013-12-03 10:53:17

标签: python list

我的列表有15个项目,所有这些项目最后都包含“_new”这个词。所以我想创建一个文件夹,其中包含没有'_new'的项目名称。怎么做?

3 个答案:

答案 0 :(得分:7)

使用列表推导删除最后4个字符:

[name[:-4] for name in list_of_names]

如果最后只有一些名称包含_new,请使用条件表达式:

[name[:-4] if name.endswith('_new') else name for name in list_of_names]

答案 1 :(得分:1)

然后我会去正则表达式:

import re
new = [re.sub('_new$', '', fname) for fname in your_list]

但是,如果您更正了名称,则需要使用os.mkdir来创建名称。

答案 2 :(得分:0)

使用带有列表推导的strip方法删除“_new”:

import os
path = r"C:\Program Files\mypath"
[os.makedirs(os.path.join(path,str(name.strip("_new"))) for name in name_list if os.path.exists(path)]