Существует много способов, как указано выше, но я обнаружил, что я просто хочу импортировать содержимое файла и не хочу писать строки и строки и должен импортировать другие модули. Итак, я нашел способ получить содержимое файла, даже с точечным синтаксисом (file.property
), а не объединять импортированный файл с вашим.
Прежде всего, вот мой файл, который я импортирую, data.py
testString= "A string literal to import and test with"
Примечание: Вместо этого вы можете использовать расширение .txt
.
В mainfile.py
начните с открытия и получения содержимого.
#!usr/bin/env python3
Data=open('data.txt','r+').read()
Теперь у вас есть содержимое в виде строки, но попытка доступа к data.testString
вызовет ошибку, так как data
является экземпляром класса str
, и даже если у него есть свойство testString
, это не будет делать то, что вы ожидали.
Далее создайте класс. Например (каламбур), ImportedFile
class ImportedFile:
И поместите это в него (с соответствующим отступом):
exec(data)
И, наконец, переназначить data
примерно так:
data=ImportedFile()
И это все! Просто получите доступ к любому другому модулю, набрав print(data.testString)
, чтобы вывести на консоль A string literal to import and test with
.
Если, однако, вы хотите эквивалент from mod import *
, просто отбросьте класс, присвоение экземпляра и отмените exec
.
Надеюсь, это поможет :)
-Benji