python 如何从命令行运行.py文件中的特定函数?

anauzrmj  于 2023-06-20  发布在  Python
关注(0)|答案(3)|浏览(221)

我有一个tkinter GUI项目。在这个项目中,我可以加载文件并对它们运行测试。我希望能够写一个脚本,从命令行做到这一点。这意味着我需要运行主脚本,让我们称之为view.py,然后运行2个回调函数,每个回调函数都是一个按钮的回调函数。让我们调用这个函数load(file),run()。这些函数是在view.py脚本中创建的2个不同对象的成员函数。它们的名称是load_button和run_button。我该怎么做?
我可以运行mainloop脚本view.py,但不知道如何运行文件中定义的函数。

r6hnlfcb

r6hnlfcb1#

在functionFile.py:

def sayHello():
    print("hello world")

CMD:

python -c "import functionFile; functionFile.sayHello()"

(you也可以导入每个函数或仅导入特定函数:from functionFile import *; sayHello()from functionFile import sayHello(); sayHello()

j2cgzkjk

j2cgzkjk2#

如果你只想在命令行中运行这两个函数而不需要GUI,你需要:

  • 在命令行中提供load(file)file参数
  • 将GUI相关的内容放入if __name__ == "__main__"块中

下面是一个示例view.py:

def load(file):
    print(f"loading {file} ...")

def run():
    print("running")

if __name__ == "__main__":
    import tkinter as tk
    file = "Hello.txt"
    root = tk.Tk()
    tk.Button(root, text="Load file", command=lambda: load(file)).pack()
    tk.Button(root, text="Run", command=run).pack()
    root.mainloop()

然后,当你想在命令行中运行这两个函数而不使用GUI时,执行:

python -c "import view; view.load('/path/to/file'); view.run()"
cedebl8k

cedebl8k3#

我想出了一个不同的方法。如果我在命令行中得到参数,我使我的视图脚本以我想要的方式(调用这两个函数)运行,它解决了我的问题。

相关问题