Открытие случайного файла а также его чтение на Python
Вот решил поделиться, как открыть и прочитать случайный файл используя random в Python.
Создадим папку Files, в которой будут хранится 2 txt файла, это a.txt и b.txt.
Создаём py файл и прописываем следующее
# Импорт модуля random
import random
# Виды ответов, то есть можно понять что выпадет
lists = [file1, file2]
# answer отвечает за выпадение из lists
answer = random.choice(lists)
# read1 отвечает за открытие и чтение 1-го файла, то есть a.txt
def read1():
file = open(r'files\a.txt', 'r', encoding='utf-8')
print(*file)
file.close()
# read2 отвечает за открытие и чтение 2-го файла, то есть b.txt
def read2():
file = open(r'files\b.txt', 'r', encoding='utf-8')
print(*file)
file.close()
# main отвечает за исполнение всего кода
def main():
# Выполняем answer, то есть что может выпасть из lists
answer
# Начинается уже сравнение ответа
if str(answer) == "file1":
read1()
elif str(answer) == "file2":
read2()
else:
print('Выпало другое')
# После чего, уже начинается само исполнение кода
if __name__ == '__main__':
main()
Совсем забыл что добавить в txt файлы.
В a.txt пишем Python выбрал файл 'a.txt'.
А в b.txt пишем Python выбрал файл 'b.txt'.
Ответы (1 шт):
Автор решения: Komedik
→ Ссылка
# Импорт модулей
import random
import os
# Указываем название нужной директории
folder = "asd"
# answer отвечает за выпадение из files
def get_answer():
files = os.listdir(folder) #Получаем список элементов папки
file = random.choice(files) #Получение случайного файла из списка
return file #Возвращаем в значении функции - переменную file
# read отвечает за открытие и чтение файла, который нам выпал
def read(file):
file = folder+"/"+file #Создание пути к папке
with open(file, 'r', encoding='utf-8') as f: #Открытие файла
text=f.read() #Чтение файла
return text #Возвращаем в значении функции - переменную text
# main отвечает за исполнение всего кода
def main():
files = os.listdir(folder) #Получаем список элементов папки повторно, чтобы программу не приходилось обновлять каждый раз
if not files: #Если список пуст
print("Папка пуста")
else: #Иначе
try: #Попытаться
text = read(get_answer()) #Получаем текст файла
if text == '': #Если текста нет
print("В файле ничего не написано.")
else: #Иначе
print(text)
except: #Если возникает ошибка
print("Ошибка!\nВозможно, папка содержит внутри себя другие папки, что не расчитано на код.")
# После чего, уже начинается само исполнение кода
if __name__ == '__main__':
main()
Исправил ошибки, добавил парочку условий на некоторые ошибки.