Задать вопрос
@MrBrainop
Начал изучать html, Python и QT Designer

Чтение и импорт файлов в папке?

Привет! Как прочить имена всех файлов в папке а потом их импортировать(Все файлы с расширение .py) и узнать значение переменной
Я сделал вот такой вот код но что дальше не знаю:
import os
for file in os.listdir("file"):
	files = file.replace('.py', '')
	exec('import '+files)
	print('import '+files)

В результате получается:
import ar
import er
import gh

В каждом из этих фалов есть переменная 'act' в которой находится определённое число.
Я пробывал вот так вот но получаю ошибку:
import os
for file in os.listdir("file"):
	files = file.replace('.py', '')
	exec('from file import '+files)
	print('from file import '+files)
	exec('print(files.act)')

Ошибка:
AttributeError: 'str' object has no attribute 'act'
  • Вопрос задан
  • 164 просмотра
Подписаться 1 Простой 6 комментариев
Решения вопроса 1
@nvlveu
Переменная files - строка.
Ошибка
AttributeError: 'str' object has no attribute 'act'

указывает на то, что тип переменной 'str'(строка) не имеет аттрибута 'act'

Попробуйте это:
import os
# Импортируем glob для нахождения файлов в папке.
from glob import glob

# Папка, в которой находятся файлы.
folder = 'file'

# Директория.
filedir_ = __file__
filename_ = os.path.basename(filedir_)
basedir_ = filedir_.replace(filename_, '')

# Список всех файлов с расширением .py в папке folder.
files = glob(fr'{basedir_}{folder}\*.py')

# Своеобразное импортирование из файлов.
for file in files:
    code_in_file = open(file, 'r', encoding='utf8').read()
    exec(code_in_file, globals())

# Выводим переменные.
print(var_1)
print(var_2)
print(var_3)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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