于是我写了一个可以操作excel文件的程序。我喜欢的是在解释器中运行脚本并从 shell 中调用函数,而且效果很好。我想做的是在不一定安装 python 的计算机上做同样的事情,所以我使用 auto-py-to-exe 将我的 py 转换为 exe,但在 exe 文件中你无法访问 shell。
我已经制作了 à 30s 视频关于这个问题:https://photos.app.goo.gl/XAaJYikmpcLV6HqC7
代码看起来像这样:
def main():
#stuff
return
while 1 != 0:
user = input("What do you want to do ? : ")
subprocess.call(user, shell=True)
如果用户输入“main()”,我希望它像在 shell 中一样执行 main 函数。
我试过 subprocess.call .run .popen 都不起作用,还有 os.system 的东西。
编辑: 我想运行带有任何参数的任何函数,它可以是“main()”、“main(1,/path)”、“getfiles()”等。所以我不必每次都手动编写“if user == ...: main(...)”。
找到答案:
def main():
#stuff
return
while 1 != 0:
user = input("What do you want to do ? : ")
eval(input)
但是警告这允许用户运行任何命令如此大的安全问题
“exec”命令也可以帮助你