小编chr*_*ley的帖子

在Suds python中覆盖Soap Envelope

我有一个相机,我正试图连接它与泡沫.我试图发送原始的xml,并发现阻止xml suds工作的唯一因素是不正确的Soap信封命名空间.

信封命名空间是:

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

我想把它重写为:

xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"

为了在python中添加命名空间,我尝试以下代码:

message = Element('Element_name').addPrefix(p='SOAP-ENC', u='www.w3.org/ENC')

但是当我添加SOAP-ENV到命名空间时,它不会写,因为它被硬编码到suds绑定中.有没有办法在泡沫中覆盖这个?

谢谢你的帮助.

python xml soap suds envelope

6
推荐指数
2
解决办法
3840
查看次数

通过ssh验证文件是否存在

我试图使用pexpect测试SSH上是否存在文件.我有大部分代码工作,但我需要捕获值,所以我可以断言文件是否存在.我所做的代码如下:

def VersionID():

        ssh_newkey = 'Are you sure you want to continue connecting'
        # my ssh command line
        p=pexpect.spawn('ssh service@10.10.0.0')

        i=p.expect([ssh_newkey,'password:',pexpect.EOF])
        if i==0:
            p.sendline('yes')
            i=p.expect([ssh_newkey,'password:',pexpect.EOF])
        if i==1:
            p.sendline("word")
            i=p.expect('service@main-:')
            p.sendline("cd /opt/ad/bin")
            i=p.expect('service@main-:')
            p.sendline('[ -f email_tidyup.sh ] && echo "File exists" || echo "File does not exists"')
            i=p.expect('File Exists')
            i=p.expect('service@main-:')
            assert True
        elif i==2:
            print "I either got key or connection timeout"
            assert False

        results = p.before # print out the result

VersionID()
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

python testing ssh bash pexpect

5
推荐指数
2
解决办法
1万
查看次数

通过 URL 验证 RTSP 服务

我正在尝试验证是否从 python 中的 URL 提供视频服务。我问有谁知道有什么好的库可以使用或者有什么方法可以做到这一点。我在网上没有找到太多这方面的信息。

谢谢

python url rtsp video-streaming

5
推荐指数
1
解决办法
4979
查看次数

如何在Python中更改变量

我试图在程序中进一步更改变量.我在程序开始时声明了一个全局变量,我想在程序中更改不同函数中的变量.我可以通过再次声明函数内部的变量来做到这一点,但我想知道是否有更好的方法来做到这一点.下面是一些测试代码来解释我的意思.

ID = 'No'
project = ("Yep"+ID) # ID added with 'No' value which I later want to change

def pro():

    ID = "YES"
    print ID

def pro1(ID):

    # I could declare project again to get this to work, but I would like to avoid this
    print project # I want this to print with the new ID number.

if __name__ == '__main__':
    pro()
    pro1(ID)
Run Code Online (Sandbox Code Playgroud)

有任何想法,谢谢

我已经尝试了global变量,但是当我这样做时,项目变量仍然打印出YepNo而不是YepYES.我希望函数中的新变量pro改变变量中的project变量.

python

4
推荐指数
2
解决办法
3万
查看次数

从字符串中提取值

我试图从字符串中提取值,我试图re.match工作,但没有运气.字符串是:

'/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
Run Code Online (Sandbox Code Playgroud)

我试过了:

 map(int,re.search("Value\s*=\s*").group(1))
Run Code Online (Sandbox Code Playgroud)

并且:

'/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'.split(' = ')
Run Code Online (Sandbox Code Playgroud)

我不知道还有什么可以添加或做.我想检索属性'Value, Max, Step'及其值.反正有没有这样做?

谢谢你的帮助

python string

4
推荐指数
1
解决办法
1887
查看次数

如何使用鼻子测试从输出中删除调试

我正在使用鼻子测试来测试几个脚本。但是当我运行鼻子测试时,它会打印出日志记录。我知道它将日志信息存储到 sys.stderr 中。有谁知道如何阻止它输出到屏幕?

我只希望测试结果像正常运行 unittest 一样输出。

谢谢你的帮助

python logging stderr nosetests

4
推荐指数
1
解决办法
1026
查看次数

使用带有fileinput的正则表达式

我试图使用正则表达式替换存储在另一个文件中的变量.我试过的代码是:

r = re.compile(r"self\.uid\s*=\s*('\w{12})'")
for line in fileinput.input(['file.py'], inplace=True): 
    print line.replace(r.match(line), sys.argv[1]), 
Run Code Online (Sandbox Code Playgroud)

文件中变量的格式为:

self.uid = '027FC8EBC2D1'
Run Code Online (Sandbox Code Playgroud)

我试图传递这种格式的参数,并使用正则表达式来验证sys.argv[1]格式是否正确,并找到存储在此文件中的变量,并将其替换为新变量.

谁能帮忙.谢谢您的帮助.

python regex

4
推荐指数
1
解决办法
2792
查看次数

创建Python RPM

我一直在阅读有关为Python 2.6.4创建RPM的文章.在这个页面中:http://docs.python.org/distutils/builtdist.html它说你可以使用创建当前Python的RPM python setup.py bdist_rpm.我的问题是:

  • 您是否必须在Python安装目录中键入此命令?
  • 此命令是否将已安装的所有模块打包到RPM中?
  • 这是正确的命令吗?
  • 还有其他建议可以让这更容易吗?

好吧,我使用checkinstall对此进行了排序.

checkinstallhttp://www.asic-linux.com.mx/~izto/checkinstall/下载.

然后我安装了包,但必须进入/usr/local/sbin/checkinstall我的PATH才能使它工作.然后我进入下一个copmmand以获取我的RPM目录.

 yum install rpm-build
Run Code Online (Sandbox Code Playgroud)

然后我cd进入Python模块并输入以下命令:

 checkinstall -R --nodoc --delspec=no  --exclude=/selinux python2.6 ./setup.py install
Run Code Online (Sandbox Code Playgroud)

此命令将命令替换checkinstall为通过setup.py而不是普通make来安装python库.

然后我经历了这个checkinstall过程.完成的RPM放入/usr/src/redhat/RPMS/i386/.

注意:这是LINUX RED HAT.

python linux rpm rpmbuild checkinstall

3
推荐指数
1
解决办法
8530
查看次数

存储os.system或os.popen的值

我想从日志文件中grep错误并将值保存为错误.我用的时候:

errors = os.system("cat log.txt | grep 'ERROR' | wc -l")
Run Code Online (Sandbox Code Playgroud)

我得到命令工作与否的返回码.我用的时候:

errors = os.popen("cat log.txt | grep 'ERROR' | wc -l")
Run Code Online (Sandbox Code Playgroud)

我得到了命令试图做的事情.

当我在命令行中运行它时,我得到3,因为有多少错误.

任何人都可以在Python中建议另一种允许我保存此bash命令值的方法吗?

谢谢

python bash operating-system

3
推荐指数
1
解决办法
1万
查看次数

RMI连接被拒绝

我正在努力获得rmi连接.我遇到了很多安全问题,但一直无法找到解决这一问题的方法.我执行我的jar文件:

java -Djava.security.policy=java.security.AllPermission -jar "myjarfile"
Run Code Online (Sandbox Code Playgroud)

我用来创建它的代码是:

public class server
{
    public static void main(String args[])throws Exception
    {
    if (System.getSecurityManager() == null)
        System.setSecurityManager ( new RMISecurityManager() {
        public void checkConnect (String host, int port) {}
        public void checkConnect (String host, int port, Object context) {}
        });

    try
    {
        sampleserverimpl server = new sampleserverimpl();
        System.out.println("SERVER IS WAITING");
        LocateRegistry.createRegistry(2020);

        //Runtime.getRuntime().exec("rmiregistry 2020");
        Naming.rebind("//localhost:2020/SERVER", server);

    }
    catch(Exception e)
    {
        System.out.println(e);
    }
}
};
Run Code Online (Sandbox Code Playgroud)

我收到的错误跟踪是:

Exception in thread "RMI TCP Connection(idle)" java.security.AccessControlExcept
ion: access denied (java.net.SocketPermission …
Run Code Online (Sandbox Code Playgroud)

java rmi hosts rmiregistry

3
推荐指数
1
解决办法
5839
查看次数