从 shell 运行 Python 程序并将变量保留在作用域内

发布于 2024-11-24 20:41:27 字数 276 浏览 1 评论 0原文

Python 在解释器中有一个很好的 execfile 函数,您可以在其中运行程序,将所有变量保留在范围内,然后在闲暇时检查它们。但是,据我所知,您无法在从命令行获取参数的程序上运行 execfile ;如果您尝试包含参数,Python 会抛出 IOError 并抱怨无法找到该文件(带有空格和参数)。

有没有什么方法可以运行接受命令行参数的Python脚本,并在程序执行后将所有变量保留在作用域内?就像带有标志的 execfile 一样?

谢谢, 凯文

Python has a nice execfile function inside the interpreter where you can run a program, keep all the variables in scope, and then inspect them at your leisure. However, as far as I know you can't run execfile on a program that takes arguments from the command line; if you try to include the arguments, Python throws an IOError and complains that the file (with spaces and arguments) can't be found.

Is there any way to run a Python script that takes command line arguments, and keep all of the variables in scope after the program executes? Like an execfile that takes flags?

Thanks,
Kevin

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千纸鹤 2024-12-01 20:41:27

您可以直接修改sys.argv。文件:

# foo.py
import sys

print sys.argv

另一个文件:

import sys
import shlex   # thanks Matt

old_argv = sys.argv
sys.argv = shlex.split('foo.py is a happy camper')

execfile('foo.py')

输出:

$ python foo.py is a happy camper
['foo.py', 'is', 'a', 'happy', 'camper']
$ python bar.py 
['foo.py', 'is', 'a', 'happy', 'camper']

但我必须引用 Ignacio Vazquez-Abrams 的话:

这听起来很混乱。

我假设你有你的理由。

You could modify sys.argv directly. The file:

# foo.py
import sys

print sys.argv

The other file:

import sys
import shlex   # thanks Matt

old_argv = sys.argv
sys.argv = shlex.split('foo.py is a happy camper')

execfile('foo.py')

Output:

$ python foo.py is a happy camper
['foo.py', 'is', 'a', 'happy', 'camper']
$ python bar.py 
['foo.py', 'is', 'a', 'happy', 'camper']

But I must say, quoting Ignacio Vazquez-Abrams:

This sounds all sorts of messed up.

I'm assuming you have your reasons though.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文