因此,我有多个Python文件,每个文件都是它们自己的控制台应用程序,为用户提供了多个选项。 file1.py,file2.py,file3.py等。
我还有另一个名为menu.py的文件。在此文件中,我想为用户提供运行其他python文件之一的选项,即
option = input("Enter file name to run: ")
if option == "file1": #Code to open file
我的代码比这要干净得多,但是希望您理解我要达到的重点。
答案 0 :(得分:0)
我相信您正在寻找os.system()
您可以通过以下方式运行命令
command = 'python3 file1.py'
os.system(command)
答案 1 :(得分:0)
此答案归因于@balpha和@fantastory。
如果您使用的是Python 2,请使用
execfile("test2.py")
如果使用Python 3,请使用
exec(open("test2.py").read())
您还可能希望了解docs关于如何处理名称空间的信息。
答案 2 :(得分:0)
添加到乔什的答案中。
对于最干净的解决方案,您应该使用import
语句从另一个文件中提取代码。实现此目的的方法是使每个文件都具有充当接口的主要功能。另外,如果文件是命令行程序,我也建议使用argparse。
如果一次只调用1个文件,则程序可能类似于:
import argparse
import file1
import file2
parser = argparse.ArgumentParser(description='Run some files')
parser.add_argument('--file', type=str, dest='file', help='file name', required=True)
parser.add_argument('--options', dest='options', nargs='+')
args = parser.parse_args()
print(args.file)
if args.file == 'file1':
if args.options:
file1.main(*args.options)
else:
file1.main()
elif args.file == 'file2':
if args.options:
file2.main(*args.options)
else:
file2.main()
file1.py 可能类似于:
def main(*options):
print('File 1', options)
您这样称呼它:python3 menu.py --file file1 --options option1 option2