每次我运行代码时,底部的终端都会显示这个长名称(我认为是文件位置)以及它应该显示的任何输出。
有没有办法让它消失?
它看起来是这样的:
Run Code Online (Sandbox Code Playgroud)administrator@Machintosh-2 Exercise Files Python % /user/bin/python3... Hello world! administrator@Machintosh-2 Exercise Files Python %
我在python中编写脚本并通过输入以下命令运行cmd:
C:\> python script.py
Run Code Online (Sandbox Code Playgroud)
我的一些脚本包含基于标志调用的单独算法和方法.现在我想通过cmd直接传递标志,而不是必须进入脚本并在运行之前更改标志,我想要类似于:
C:\> python script.py -algorithm=2
Run Code Online (Sandbox Code Playgroud)
我读过人们使用sys.argv几乎是类似的目的,但是阅读手册和论坛我无法理解它是如何工作的.
我想知道如何从cmd提示符打开时从python脚本中输入变量?我知道使用c会做类似的事情:
int main( int argc, char **argv ) {
int input1 = argv[ 0 ]
int input2 = argv[ 1 ]
.....
}
Run Code Online (Sandbox Code Playgroud)
如何在python中实现同样的结果?
当提示输入密码时,如何将密码传递给我的 python 脚本。我不希望用户在提示时输入密码。它应该直接从脚本传递。
subprocess.run(['ansible-vault', 'decrypt', 'main.yml', 'linux.yml','--ask-vault-pass'])
Run Code Online (Sandbox Code Playgroud)
在运行脚本时,它会提示输入密码。我希望密码仅从脚本传递,而不是由用户传递或传递密码文件。
有没有办法在这里传递密码?我有其他 ansible 保险库选项,如保险库密码等,但这不符合我的目的。
我正在编写一个控制音量的脚本。该脚本的名称是vv,它需要一个参数。例如vv .9,其中 .9 是您要设置音量的级别。该程序按预期工作,但我想更改它,以便如果省略参数,它会打印出当前的音量级别。我尝试过这样写。
import sys
vol = float(sys.argv[1])
if len(sys.argv[1]) == 0:
print(round(volume.value_flat, 2))
exit(0)
else:
run the rest of the program
Run Code Online (Sandbox Code Playgroud)
我也试过这样:
if (sys.argv[1]) == '':
Run Code Online (Sandbox Code Playgroud)
这两种方法都失败了。我想如果 sys.argv 没有得到它的参数,它就不会运行该程序,即使你专门测试没有参数?有没有更好的方法来做到这一点而不使用argparse?
更新:我在几个答案的帮助下解决了这个问题。我做错的第一件事是测试 len == 0 而不是 len == 1。sys.argv 的 len 永远不会为 0,因为脚本名称始终为 [0]。另一件事是我在测试 len 之前正在研究 sys.argv - 显然这是不行的。另外,我的语法是错误的,应该使用 (sys.argv) 而不是 (sys.argv[1])。
这是更新后的代码:
if len(sys.argv) == 1:
with Pulse('volume-example') as pulse:
sink_input = pulse.sink_input_list()[0]
volume = sink_input.volume
print('current level:','\t', round(volume.value_flat, 2))
exit(0)
else:
vol …Run Code Online (Sandbox Code Playgroud) 我对python比较陌生.我想写一个脚本并传递它的参数如下:
myscript.py --arg1=hello --arg2=world
Run Code Online (Sandbox Code Playgroud)
在脚本中,我想访问参数arg1和arg2.任何人都可以解释如何以这种方式访问命令行参数?
我必须将命令行参数存储在变量中或为其分配默认值.
我正在尝试的是下面
import sys
Var=sys.argv[1] or "somevalue"
Run Code Online (Sandbox Code Playgroud)
如果我没有指定任何参数,我将从索引中获取错误.怎么解决这个?
我是Python新手。我正在使用 python 脚本,在其中加载 json 文件来为脚本设置某些值,但我的想法是使用参数更动态地导入该文件(我认为这是正确的用法),所以我不需要\xc2\xb4t始终在 python 脚本中包含 json 文件的名称,这里是可能的代码示例:
\n\nimport json\nfrom pprint import pprint\n\nwith open("VariableSettings.json") as json_data:\n data = json.load(json_data)\nRun Code Online (Sandbox Code Playgroud)\n\n所以我的想法是更改代码: "with open("VariableSettings.json") as json_data" with args 动态打开 json 文件。
\n\n我认为在命令提示符下我可以使用命令 py test.py arg1 (这代表文件路径)。
\n\n所以我知道我的解释可能有点令人困惑,但如果有人可以帮助我,我会很感激。
\n语言:python - 3.7.3 机器人框架- 3.1.1 熟练程度:新手
我想从命令提示符将参数传递给 python 文件变量,然后想通过添加 python 文件作为变量来从机器人文件中打印相同的参数。
cmd (Variables) --> python file --> robot (print those variables)
Run Code Online (Sandbox Code Playgroud)
但显然这些尝试都没有产生预期的结果。任何指导都将受到高度赞赏。
注意: Robot 和 Python 文件都位于 pycharm IDE 中的同一目录下。
命令行:-
1st try: robot -d Report -V test.py Test_sample.robot|py test.py test@test.com test@123 QA1
2nd try: robot -d Report Test_sample.robot|py test.py test@test.com test@123 QA1
3rd try: robot -d Report --Variablefile py test.py Test_sample.robot|py test.py test@test.com test@123 QA1
4th try: robot -d Report -V | py test.py test@test.com test@123 …Run Code Online (Sandbox Code Playgroud) 当脚本使用是这样的时候,Python optparse非常有用
%prog [options] [args]
Run Code Online (Sandbox Code Playgroud)
但我需要为脚本编写1个必需参数的帮助,所以用法就是这样的
%prog action [options] [args]
Run Code Online (Sandbox Code Playgroud)
使用Subversion时可以看到类似的东西 - 它的用法字符串是
svn <subcommand> [options] [args]
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:是否有可能以Subversion的方式为optparse准备所需的参数帮助?结果我希望看到这样的帮助:
Usage: python myscript.py action [options] [args]
Available actions:
foo
bar
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-v, --verbose Verbose mode. Output debug log to stdout.
Run Code Online (Sandbox Code Playgroud)