Как я мог обрабатывать имя файла как переменную в инструкции with - PullRequest
1 голос
/ 01 августа 2020

Я пытаюсь записать данные в файл. Вот как я продолжаю.

values = [45, 67, 39]
with open(os.path.join(path_class, r'first_file.csv'), 'a') as f: 
writer = csv.writer(f)
        writer.writerow(values)

Но я хотел бы иметь переменную в позиции first_file.csv.
Моя проблема здесь with open(os.path.join(path_class, r'file_name.csv')

Итак, я хотел бы иметь что-то вроде:

list_of_file = ['first_file.csv', 'second_file.csv']
for i in range(0, len(list_of_file):
    with open(os.path.join(path_class, r+list_of_file[i]), 'a') as f:
        writer = csv.writer(f)
        writer.writerow(values)

Как я могу это сделать
Спасибо, что нашли время ответить мой вопрос.

Ответы [ 2 ]

2 голосов
/ 01 августа 2020
list_of_files = ['first_file.csv', 'second_file.csv']
for file in list_of_files:
    with open(os.path.join(path_class, file), 'a') as f:
        writer = csv.writer(f)
        writer.writerow(values)
1 голос
/ 01 августа 2020

Вам не обязательно нужен строковый флаг r здесь, так как строка представляет только имя файла csv. Отметьте этот ответ на предмет использования флага строки r.

Следовательно, этот код должен работать:

for i in range(len(list_of_file)):
    with open(os.path.join(path_class, list_of_file[i]), 'a') as f:
        writer = csv.writer(f)
        writer.writerow(values)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...