如何在Python中导入文件?我想导入:
文件(例如file.py) 一个文件夹 在运行时根据用户输入动态地生成文件 文件的特定部分(例如,单个函数)
如何在Python中导入文件?我想导入:
文件(例如file.py) 一个文件夹 在运行时根据用户输入动态地生成文件 文件的特定部分(例如,单个函数)
当前回答
import sys
#print(sys.path)
sys.path.append('../input/tokenization')
import tokenization
要导入任何.py文件,可以使用上面的代码。
首先追加路径,然后导入
注:“. ./input/tokenization'目录中包含tokenization.py文件
其他回答
这就是我从python文件调用函数的方式,这对我来说是灵活的,可以调用任何函数。
import os, importlib, sys
def callfunc(myfile, myfunc, *args):
pathname, filename = os.path.split(myfile)
sys.path.append(os.path.abspath(pathname))
modname = os.path.splitext(filename)[0]
mymod = importlib.import_module(modname)
result = getattr(mymod, myfunc)(*args)
return result
result = callfunc("pathto/myfile.py", "myfunc", arg1, arg2)
有很多方法,如上所述,但我发现我只想导入文件的内容,而不希望必须写一行又一行,必须导入其他模块。因此,我想出了一种方法来获取文件的内容,甚至使用点语法(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()
现在您有了字符串形式的内容,但是正在尝试访问数据。testString将导致一个错误,因为data是str类的一个实例,即使它确实有一个属性testString,它也不会执行您所期望的操作。 接下来,创建一个类。例如(双关语),ImportedFile
class ImportedFile:
然后把这个放进里面(用合适的缩进):
exec(data)
最后,像这样重新分配数据:
data=ImportedFile()
就是这样!就像访问任何其他模块一样,输入print(data.testString)将打印到控制台一个字符串文字,用于导入和测试。 然而,如果你想要从mod import *中获得等效的效果,只需删除类、实例赋值和删除exec即可。
希望这对你有所帮助。 石磊
在“运行时”导入一个已知名称的特定Python文件:
import os
import sys
...
scriptpath = "../Test/"
# Add the directory containing your module to the Python path (wants absolute paths)
sys.path.append(os.path.abspath(scriptpath))
# Do the import
import MyModule
将python文件从一个文件夹导入到另一个文件夹的复杂方法并不多。只需要创建一个__init__.py文件来声明这个文件夹是一个python包,然后转到你想要导入的主机文件
从root。parent。folder。file导入变量,类,等等
如果函数定义在x.py文件中:
def greet():
print('Hello! How are you?')
在导入函数的文件中,这样写:
from x import greet
如果您不希望导入文件中的所有函数,这是非常有用的。