2013-12-03 6 views

ответ

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] 
+0

Может быть немного лучше, '[name.rstrip ('_ новый'), если name.endswith ('_ новый') еще имя для имени в list_of_names] '? – sheh

+1

@sheh ... nope - это просто неправильно - попробуйте в файле под названием '_____ newnewnew ___ new' –

+2

@sheh: Нет, потому что' .rstrip() 'принимает * набор символов. Он будет удалять * все * '_',' n', 'e' и' w' символы в любом порядке, начиная с конца. Например, попробуйте «know_when_we». –

1

Я пойду для regex then:

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

Однако вы исправляете свое имя, вы хотите использовать os.mkdir, чтобы создать его.

0

Используйте метод полосы с пониманием список, чтобы удалить "_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)] 
Смежные вопросы