Как создать файл с именем из переменной?
Помогите сделать функцию которая создает бинарный файл где: 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)
Ответы (2 шт):
Можно конкатенацию сделать:
with open(path + '/' + file_name, 'wb') as bfile_employee:
pass
Или f-строку использовать:
with open(f'{path}{file_name}', 'wb') as bfile_employee:
pass
Библиотека 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). Скорее всего будет использоваться сепаратор, соответствующий системе.