Как выполнить просмотр списка переменных как части пути к файлу?

#python

#python

Вопрос:

Мне нужно пройти через ряд идентичных каталогов и объединить два файла .txt из каждого в один файл.

Я пытался использовать список (включая частичный список, всего ~ 1000 каталогов), но Python продолжает интерпретировать мою переменную list как текст в пути к файлу.

 import os
for subject in ['100307', '100408', '101107']:
    os.chdir("/Users/me/Desktop/SubjPerformance/(subject)")

    filenames = ['0bk_nlr.txt', '2bk_nlr.txt']

    with open('all_bk_nlr', 'w') as outfile:
        for fname in filenames:
            with open(fname) as infile:
               outfile.write(infile.read())
  

Ошибка, которую я продолжаю получать, это:

 FileNotFoundError: [Errno 2] No such file or directory: '/Users/me/Desktop/SubjPerformance/(subject)'
  

Очевидно, что (subject) не является частью пути к файлу. Я хочу, чтобы он брал элемент из моего списка, но вместо этого интерпретирует то, что я хочу, чтобы было переменной списка, как текст.

Я уверен, что это также можно было бы сделать с помощью подстановочного знака, который проходит через каждый подкаталог в / SubjPerformance, но я не знаю, как построить этот цикл.

Спасибо за вашу помощь и извините за невежественный вопрос — я исследователь нейробиологии, а не разработчик!

Комментарии:

1. Python не будет интерпретировать текст как переменную. Вы можете объединить переменную со своей строкой различными способами в зависимости от версии python, которую вы используете: "string" variable или f'string{variable}' или 'string{}'.format(variable)

Ответ №1:

Вы используете неправильный синтаксис, используйте

 "/Users/me/Desktop/SubjPerformance/%s" % subject
  

или

 "/Users/me/Desktop/SubjPerformance/{}".format(subject) 
  

вместо этого.

Ответ №2:

Чтобы использовать переменную внутри строки, вы можете использовать "/Users/me/Desktop/SubjPerformance/%s" % subject . Вы можете узнать больше о форматировании строк здесь.