通过它的路径在另一个中使用一个 py 文件
using one py file in another via it's path
我想在 运行ning main.py 时在命令参数中给出路径,main.py 应该显示 .py 文件中提到的所有函数路径。
main.py
getpathfromargument = /some/path/file.py
print(functions_present_in(getpathfromargument)
路径不一定与main.py
在同一个目录
我可能运行如下
$python main.py /some/path/file.py
要从 main.py 访问函数,我必须在路径中导入文件吗?
像使用 built-in 模块一样使用 import
:
import file as f
print(dir(f))
如果我对你的问题的理解正确,你想要一个参数,它是 python 文件的路径,并打印该文件中存在的函数。
我会这样做:
from inspect import getmembers, isfunction
from sys import argv
from shutil import copyfile
from os import remove
def main():
foo = argv[1] # Get the argument passed while executing the file
copyfile(foo, "foo.py") # Copy the file passed in the CWD as foo.py
import foo
print(getmembers(foo, isfunction)) # Print the functions of that module
remove("foo.py") # Remove that file
if __name__ == "__main__":
main()
这会将传入的文件复制到 CWD(当前工作目录),将其导入并打印其中的函数,然后删除刚刚在 CWD 中制作的文件副本。
我想在 运行ning main.py 时在命令参数中给出路径,main.py 应该显示 .py 文件中提到的所有函数路径。
main.py
getpathfromargument = /some/path/file.py
print(functions_present_in(getpathfromargument)
路径不一定与main.py
在同一个目录我可能运行如下
$python main.py /some/path/file.py
要从 main.py 访问函数,我必须在路径中导入文件吗?
像使用 built-in 模块一样使用 import
:
import file as f
print(dir(f))
如果我对你的问题的理解正确,你想要一个参数,它是 python 文件的路径,并打印该文件中存在的函数。
我会这样做:
from inspect import getmembers, isfunction
from sys import argv
from shutil import copyfile
from os import remove
def main():
foo = argv[1] # Get the argument passed while executing the file
copyfile(foo, "foo.py") # Copy the file passed in the CWD as foo.py
import foo
print(getmembers(foo, isfunction)) # Print the functions of that module
remove("foo.py") # Remove that file
if __name__ == "__main__":
main()
这会将传入的文件复制到 CWD(当前工作目录),将其导入并打印其中的函数,然后删除刚刚在 CWD 中制作的文件副本。