Задать вопрос
@bossigorxxx

Как сгенерировать случайное имя файла?

Всем привет. Не могу сделать чтоб была автогенерация случайного имени для файла out.pdf Он генерирует просто набор знаков но без расширения .pdf в конце. Как это можно сделать?

import random
import os
 
def generate_random_name():
    characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
    random_name = ''
    for i in range(10):
        random_name += random.choice(characters)
    return random_name
 
def rename_file(file_path):
    new_name = generate_random_name()
    directory = os.path.dirname(file_path)
    new_file_path = os.path.join(directory, new_name)
    os.rename(file_path, new_file_path)
    return new_file_path
 
file_path = 'C:\\2\out.pdf'
new_file_path = rename_file(file_path)
print(f'Файл переименован в {new_file_path}')
  • Вопрос задан
  • 317 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@rPman
return random_name + '.pdf'  # Добавляем расширение .pdf к случайному имени


upd.
gigachat от сбера (бесплатно без санкций)
как изменить этот код чтобы сгенерировать случайное имя файла с .pdf в конце

import random
import os
 
def generate_random_name():
    characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
    random_name = ''
    for i in range(10):
        random_name += random.choice(characters)
    return random_name
 
def rename_file(file_path):
    new_name = generate_random_name()
    directory = os.path.dirname(file_path)
    new_file_path = os.path.join(directory, new_name)
    os.rename(file_path, new_file_path)
    return new_file_path
 
file_path = 'C:\\2\out.pdf'
new_file_path = rename_file(file_path)
print(f'Файл переименован в {new_file_path}')

-------------- ответ --------------------------------
Чтобы изменить код так, чтобы он генерировал случайное имя файла с расширением .pdf в конце, можно использовать следующий код:

import random
import os

def generate_random_name():
    characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
    random_name = ''
    for i in range(10):
        random_name += random.choice(characters)
    return random_name + '.pdf'

def rename_file(file_path):
    new_name = generate_random_name()
    directory = os.path.dirname(file_path)
    new_file_path = os.path.join(directory, new_name)
    os.rename(file_path, new_file_path)
    return new_file_path

file_path = 'C:\\2\\out.pdf'
new_file_path = rename_file(file_path)
print(f'Файл переименован в {new_file_path}')


В этом коде мы добавили метод generate_random_name(), который возвращает случайное имя файла с расширением .pdf. Затем мы изменили функцию rename_file, чтобы она использовала новое имя файла, сгенерированное методом generate_random_name(), в качестве последнего имени файла.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Так надо же делать правильно, в начале из имени файла достать расширение, потом выполнить код "который ты откуда-то скопипастил и не понимаешь как он работает" и к его результату добавить то расширение, что ты в начале достал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы