2015-03-19 2 views
0

Что лучше всего для достижения следующего? Каждый из элементов в списке должен быть добавлен с общей строкой.Форматирование строки Python внутри списка

path = os.path.join(os.path.dirname(__file__), 'configs')) 

files = ['%s/file1', '%s/file2'] % path 

Но я получаю следующее сообщение об ошибке:

TypeError: unsupported operand type(s) for %: 'list' and 'str' 

ответ

2

Вам нужно применить его к каждому формату, в свою очередь:

files = ['%s/file1' % path, '%s/file2' % path] 

Однако, вы действительно должны использовать os.path.join() здесь; то будет использоваться правильный разделитель каталогов для конкретной платформы, всегда:

files = [os.path.join(path, 'file1'), os.path.join(path, 'file2')] 

Если это становится повторяющимся, использовать список понимание:

files = [os.path.join(path, f) for f in ('file1', 'file2')]