【python – 如何只允许管理员执行命令】教程文章相关的互联网学习教程文章

在执行Python Paramiko的命令后,我如何保存结果?【代码】

如下所示,是否可以保存结果?原因,在第二和第三stdout.read()我无法达到结果.import paramiko import os dssh = paramiko.SSHClient() dssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) dssh.connect('192.168.1.250', username='root', password='pass') import os stdin, stdout, stderr = dssh.exec_command('ifconfig') print stdout.read() print ('Sleeping 2 seconds!') os.system('sleep 2') stdin, stdout, s...

python – pip freeze命令输出中的“pkg-resources == 0.0.0”是什么【代码】

当我运行pip freeze时,我看到(在其他预期的包中)pkg-resources == 0.0.0.我看过一些帖子提到这个包(包括this one),但没有一个解释它是什么,或者为什么它包含在pip冻结的输出中.我想知道的主要原因是出于好奇,而且,在某些情况下,当尝试使用包含pkg-resources == 0.0.0行的pip freeze生成的requirements.txt文件安装包时,它似乎会破坏一些东西.例如,当Travis CI尝试通过pip安装依赖项并找到此行时). 什么是pkg-resources,可以从requi...

在没有python命令的情况下在终端中运行python脚本【代码】

我有一个python脚本,我们将它命名为script1.py.我可以这样在终端上运行它:python /path/script1.py ...但我想像命令行程序一样运行:arbitraryname ...我该怎么做 ?解决方法:您在脚本开头使用shebang line:#!/usr/bin/env python使文件可执行:chmod +x arbitraryname并将其放在PATH上的目录中(可以是符号链接):cd ~/bin/ ln -s ~/some/path/to/myscript/arbitraryname

python – 在PyCharm中运行但不在命令行中运行的脚本【代码】

当我尝试从PyCharm IDE运行我的程序时,一切正常但如果我输入Fedora:python myScript.py在shell提示符中,我从模块中获得了一个导入错误. ImportError:没有名为myDependency的模块 PyCharm做什么允许解释器在从IDE启动时找到我的依赖项?如何让我的脚本找到它的依赖项,以便可以使用单一命令启动它?解决方法:有几件事可能导致这种情况: >同样的python解释器?检查导入sys;打印(sys.executable)>它是同一个工作目录吗?检查导入操作...

在jupyter / ipython notebook中将命令行参数传递给argv【代码】

我想知道是否可以在jupyter / ipython笔记本中使用命令行参数填充sys.argv(或其他一些结构),类似于通过python脚本完成的操作. 例如,如果我按如下方式运行python脚本: python test.py错误 然后sys.argv将包含参数False.但是,如果我以类似的方式运行一个jupyter笔记本: jupyter notebook test.ipynb False 然后命令行参数丢失.有没有办法从笔记本本身访问这个参数?解决方法:经过大量的环顾后,我发现了非常繁琐的自定义库,但是用几...

使用python-click为cli命令添加未指定的选项【代码】

我想使用python-click库向cli命令添加未指定的选项.所以我的cli功能可能如下所示$my-cmd --option1 value1 --options2 value2 --unknown_var value3我目前的代码:import click@click.option('--option1') @click.option('--option2') @click.command(name='my-cmd') def cli(option1, option2):click.echo("my test")我希望看到如下内容:import click@click.option('--option1') @click.option('--option2') @click.command(name...

Python Paramiko – 运行命令【代码】

我试着运行这个脚本:hostname = '192.168.3.4' port = 22 username = 'username' password = 'mypassword' y = "2012" m = "02" d = "27"if __name__ == "__main__":s = paramiko.SSHClient()s.load_system_host_keys()s.connect(hostname, port, username, password)command = 'ls /home/user/images/cappi/03000/y/m/d's.close问题是:如何将变量y,m,d放入变量命令?解决方法:Python有很多方法可以执行字符串格式化.最简单的方法...

如何将字典作为命令行参数传递给python脚本?【代码】

如何将字典作为命令行参数传递给python脚本?我需要获取字典,其中键是字符串,值是一些元素的列表(例如看起来像:command_line_arguments = {"names" : ["J.J.", "April"], "years" : [25, 29]}我试过像if __name__ == '__main__':args = dict([arg.split('=') for arg in sys.argv[2:]]) # also tried with 1 but doesn't workmain(args)而我正在调用脚本$python saver.py names=["J.J.", "April"] years=[25, 29]但它不起作用,字典...

python之实现批量远程执行命令(堡垒机)【代码】【图】

python远程批量执行用到的模块:paramiko 功能:很简单就是批量执行命令,类似于ansible,本来想用Fabric,但是想一想还是用paramiko,因为我在学习ansible,ansible里面就有paramiko。后期还要将配置文件里面的主机组放到数据库里面。这里我想使用的mongodb,因为我的主机配置文件写的是字典的形式,保存在文档数据库中更为方便些。 配置文件格式:这里为了方便获取信息,直接写成了字典的形式,本来前期想用pickle模块进行序列化...

python – 如何通过命令行在pytest中传递参数【代码】

我有一个代码,我需要传递像终端名称这样的参数.这是我的代码以及如何传递参数.我收到一个“文件未找到”的错误,我不明白. 我在终端中尝试了命令:pytest< filename> .py -almonds我应该把这个名字打印成“杏仁”@pytest.mark.parametrize("name") def print_name(name):print ("Displaying name: %s" % name)解决方法:在你的pytest测试中,不要使用@ pytest.mark.parametrize:def test_print_name(name):print ("Displaying name: ...

python笔记42-http请求命令行工具(httpie)【代码】

前言 通常我们需要快速的测试某个接口通不通,一般linux上用curl去发http请求,但是这个命令行工具语法有点复杂了,不够直观。 python有一个给人类使用的requests库,非常的简单方便。httpie就是基于requests开发的,给人类用的命令行工具,取代curl的绝佳工具。 环境安装pip install httpie==1.0.3查看版本号 C:\Users\dell>pip show httpie Name: httpie Version: 1.0.3 Summary: HTTPie - a CLI, cURL-like tool for humans. Ho...

当使用Python Paramiko exec_command执行时,某些Unix命令失败并显示“未找到”【代码】

我试图在Paramiko exec_command的帮助下从Python在Unix服务器上运行sesu命令.但是当我运行这个命令exec_command(‘sesu test’)时,我得到了sh: sesu: not found当我运行简单的ls命令时,它给我所需的输出.只有使用sesu命令它才能正常工作. 这是我的代码的样子:import paramikohost = host username = username password = password port = portssh=paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy(...

如何使用python命令运行不同版本的python的pip?【代码】

我现在正在ubuntu 15.10上使用Python 但在我的操作系统中,我安装了许多不同的python版本: > Python(2.7.9)> Python3(3.4.3)> Python3.5> PyPy 所以,我对他们的包环境版本感到很乱,例如,如果我运行:pip3 install django实际上我无法在python3.5中导入django. 有没有有效的方法来调用pip的相关版本? PS:不建议我使用virtualenv,我知道它并正在寻求另一种解决方案.解决方法:最后我自己找到了解决方案,请参阅文档: https://docs.p...

python – 解析命令行参数的最佳方法是什么?【代码】

解析Python命令行参数的最简单,最简洁,最灵活的方法或库是什么?解决方法:这个答案表明optparse适用于较旧的Python版本.对于Python 2.7及更高版本,argparse取代了optparse.有关更多信息,请参见this answer. 正如其他人所指出的那样,你最好选择optparse而不是getopt. getopt几乎是标准getopt(3)C库函数的一对一映射,并不是很容易使用. optparse虽然有点冗长,但结构更好,后期更容易扩展. 这是向解析器添加选项的典型行:parser.add_o...

python – 用户输入和命令行参数【代码】

我如何拥有a)可以接受用户输入的Python脚本以及如何创建它b)如果从命令行运行,则读入参数?解决方法:要读取用户输入,您可以尝试使用the cmd module轻松创建一个迷你命令行解释器(带有帮助文本和自动完成)和raw_input(用于Python 3的input),以便从用户那里读取一行文本.text = raw_input("prompt") # Python 2 text = input("prompt") # Python 3命令行输入在sys.argv中.在你的脚本中尝试这个:import sys print (sys.argv)解析命...