简体   繁体   English

我可以在交互模式下访问python中的sys.argv吗?

[英]Can I access sys.argv in python in interactive mode?

I'd like to do something like: 我想做点什么:

% python foo bar
import sys
sys.argv

to get: 要得到:

%  ['foo', 'bar']

but of course python dies when you enter an argument which is not a script or goes into non interactive mode if you do. 但是当你输入一个不是脚本的参数或者你进入非交互模式时,python会死掉。

Can I do this somehow? 我能以某种方式这样做吗?

Use - as script name: 使用-作为脚本名称:

python - foo bar

Test: 测试:

>>> import sys
>>> sys.argv
['-', 'foo', 'bar']
$ python - asdf asdf
Python 2.7.6 (default, Feb 15 2014, 23:06:13) 
[GCC 4.8.2 20140206 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.argv
['-', 'asdf', 'asdf']
>>> 

Run python this way: 以这种方式运行python:

python - foo bar

Then 然后

import sys
sys.argv

will work :) 将工作 :)

You could just set it manually for testing in IDLE: 您可以手动设置它以便在IDLE中进行测试:

try:
    __file__
except:
    sys.argv = [sys.argv[0], 'foo', 'bar']

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM