如何通过在python中的另一个程序中激活来运行程序

如何通过在python中的另一个程序中激活来运行程序,python,Python,我对编程相当陌生,我想知道是否通过命令运行不同的文件,例如: userInput = input("Hello, which game would you like to go to? Battleship, rock-paper-scissors, or Farkle?") if userInput == "Battleship": #runs Battleship.py elif userInput == "rock-paper-scissors": #runs RockPaperS

我对编程相当陌生,我想知道是否通过命令运行不同的文件,例如:

userInput = input("Hello, which game would you like to go to? Battleship, rock-paper-scissors, or Farkle?")
if userInput == "Battleship":
  #runs Battleship.py
elif userInput == "rock-paper-scissors":
  #runs RockPaperScissors.py
elif userInput == "Farkle":
  #runs Farkle.py
else:
  print("Sorry, I didn't understand that.")
如果“程序”是指功能,那么

def foo():
    # Put your code here

userInput = input("Would you like to go to program 2?  ")
if userInput == "yes":
  foo()

或者从另一个文件(在我的例子中是
bar.py

bar.py

def foo():
    # Code here
main.py
(您的原始文件)

如果“程序”是指功能,那么

def foo():
    # Put your code here

userInput = input("Would you like to go to program 2?  ")
if userInput == "yes":
  foo()

或者从另一个文件(在我的例子中是
bar.py

bar.py

def foo():
    # Code here
main.py
(您的原始文件)


假设您有两个
.py
文件:

  • script1.py
    :您想从此文件调用另一个程序或Python脚本
  • script2.py
    :要执行的文件
您现在有多个选项:

  • 将另一个文件视为模块(导入):
    script1.py
    write中:

    import os
    os.system('python /path/to/script2.py')
    
    import subprocess
    subprocess.call(['python', '/path/to/script2.py'])
    
    导入脚本2
    (注意:文件必须位于同一目录中。)

  • 生成shell进程:在
    script1.py
    中写入:

    import os
    os.system('python /path/to/script2.py')
    
    import subprocess
    subprocess.call(['python', '/path/to/script2.py'])
    
  • 子流程
    模块使用
    调用
    :在
    脚本1.py中
    写入:

    import os
    os.system('python /path/to/script2.py')
    
    import subprocess
    subprocess.call(['python', '/path/to/script2.py'])
    
  • 当“调用”另一个python文件时,选项1应该是首选选项。其他可用于运行非Python内容的命令,例如Bash命令:

    import subprocess
    subprocess.call(['ls'])
    

    假设您有两个
    .py
    文件:

    • script1.py
      :您想从此文件调用另一个程序或Python脚本
    • script2.py
      :要执行的文件
    您现在有多个选项:

  • 将另一个文件视为模块(导入):
    script1.py
    write中:

    import os
    os.system('python /path/to/script2.py')
    
    import subprocess
    subprocess.call(['python', '/path/to/script2.py'])
    
    导入脚本2
    (注意:文件必须位于同一目录中。)

  • 生成shell进程:在
    script1.py
    中写入:

    import os
    os.system('python /path/to/script2.py')
    
    import subprocess
    subprocess.call(['python', '/path/to/script2.py'])
    
  • 子流程
    模块使用
    调用
    :在
    脚本1.py中
    写入:

    import os
    os.system('python /path/to/script2.py')
    
    import subprocess
    subprocess.call(['python', '/path/to/script2.py'])
    
  • 当“调用”另一个python文件时,选项1应该是首选选项。其他可用于运行非Python内容的命令,例如Bash命令:

    import subprocess
    subprocess.call(['ls'])
    

    不,我指的是另一个文件。@VirusFreeNewt补充道,将整个程序定义为函数来做同样的事情是干净的编码吗?@VirusFreeNewt同样的事情是什么意思?我指的不是将一个文件中某个代码的一部分定义为函数,而是将整个程序定义为函数。不,我指的是一个不同的文件。@VirusFreeNewt补充道,将整个程序定义为一个函数来做同样的事情是干净的编码吗?@VirusFreeNewt同样的事情是什么意思?我指的不是将一个文件中某个代码的一部分定义为函数,而是将整个程序定义为函数。答案是“是”,但有更好的方法可以做到这一点。这里真正的问题是什么?你想达到什么目标?编辑问题,输入一些您编写的代码,并描述您正在尝试做什么。@jdv我编辑了它。答案是“是”,但有更好的方法可以做到这一点。这里真正的问题是什么?你想达到什么目标?编辑问题,输入一些您编写的代码,并描述您试图做什么。@jdv我编辑了它。