Как создать файл с именем из переменной?

Рейтинг: 0Ответов: 2Опубликовано: 12.01.2023

Помогите сделать функцию которая создает бинарный файл где: path - путь к файлу file_name - имя файла Я знаю только как создать при помощи path и в конце самому указать название, например:

with open(path, wb) as binary_file:
    pass

И path будет 'C:\Projects\Test_Project\Test.bin' А как сделать название из какой-либо переменной?

from pathlib import Path


def create_backup(path, file_name):
    with open(path, 'wb') as bfile_employee:
        pass


path_to_dir = Path(r'C:\Projects\Test_Project')
file_name = 'archived_file.bin'
create_backup(path_to_dir, file_name)

Ответы

▲ 1Принят

Можно конкатенацию сделать:

with open(path + '/' + file_name, 'wb') as bfile_employee:
    pass

Или f-строку использовать:

with open(f'{path}{file_name}', 'wb') as bfile_employee:
    pass
▲ 3

Библиотека pathlib специально предназначена для того, чтобы такие вещи делать проще - пути типа Path можно объединять со строками просто через оператор деления /. Но при этом получается линуксовый стиль обозначения каталогов, не уверен, будет ли это нормально работать в винде, нужно проверять. Но по идее должно:

from pathlib import Path

def create_backup(path, file_name):
    with open(path/file_name, 'wb') as bfile_employee:
        pass

path_to_dir = Path('C:/Projects/Test_Project') # линуксовые разделители
file_name = 'archived_file.bin'
create_backup(path_to_dir, file_name)

Впрочем, я видимо проверял в линуксе, поэтому у меня линуксовый стиль и получился, возможно в винде можно оставить бэкслэши в пути и объединяться будет через них, нужно просто проверить, что выдаст print(path/file_name). Скорее всего будет использоваться сепаратор, соответствующий системе.