Articles of python

如何在python中传递星号到模块“sh”?

我在Python中使用“sh”模块来调用Linux上的外部命令。 在我的具体情况下,我想称之为“du”命令,因为它比“手动”更有效。 不幸的是,下面的行不起作用: output = sh.du('-sx', '/tmp/*') 但是这确实有效: output = sh.du('-sx', '/tmp/') 如果我传递一个星号,我得到以下错误信息: 'ascii' codec can't encode character u'\u2018' in position 87: ordinal not in range(128) 有谁知道如何处理命令行参数中的星号? 根据要求,这里是堆栈跟踪: Traceback (most recent call last): File "./unittest.py", line 33, in <module> output = sh.du('-sx', '/tmp/*') File "/usr/local/lib/python2.7/dist-packages/sh.py", line 1021, in __call__ return RunningCommand(cmd, call_args, stdin, stdout, stderr) […]

在Linux中实时监控鼠标坐标

我需要一个python编码来在Linux中实时监控鼠标坐标。 我发现下面的编码,它运作良好,但鼠标坐标信息将显示在一个popup的GUI窗口。 现在我不需要在GUI窗口中显示,只需要将鼠标坐标信息保存到文本文件(日志文件)。 有人可以帮助我吗? 谢谢! 另外,如果能按小时保存鼠标坐标信息,那就太好了。 #!/usr/bin/env python """ Corrected, the thread stops now. """ import sys import os from time import sleep import gtk gtk.gdk.threads_init() import threading # uses the package python-xlib # from http://snipplr.com/view/19188/mouseposition-on-linux-via-xlib/ # or: sudo apt-get install python-xlib from Xlib import display old_stdout = sys.stdout sys.stdout = open(os.devnull, 'w') def mousepos(): […]

Unix3上的Python3 CGI HTTPS服务器失败

这个Python3 CGI HTTPS服务器过去几个星期(或几个月)工作,但现在不再在Linux(Ubuntu)下工作。 我试过在Ubuntu 10.04和Ubuntu 14.04上的行为是一样的。 现在,当我尝试访问任何CGI脚本,我得到: Secure Connection Failed An error occurred during a connection to 127.0.0.1:4443. SSL received a record that exceeded the maximum permissible length. (Error code: ssl_error_rx_record_too_long) 以下是服务器的代码: import http.server import ssl import os server_address = ('', 4443) cert = os.path.abspath('./server.pem') handler = http.server.CGIHTTPRequestHandler handler.cgi_directories = ['/cgi-bin'] httpd = http.server.HTTPServer(server_address, handler) […]

如何读取当前在subprocess.stdoutpipe道中的所有内容,然后返回?

我使用python的subprocess模块通过stdin和stdoutpipe道与程序进行交互。 如果我在stdout上调用subprocessreadline(),它会挂起,因为它正在等待换行符。 如何读取子stream程实例的标准输出pipe道中的所有字符? 如果有问题,我正在Linux上运行。

如何控制具有多个IP的机器上的ZeroMQ数据包的源IP地址?

Python标准库的socket .create_connection()方法具有源地址选项,用于控制连接使用的源IP。 给定一个具有多个地址的机器,如何用Python ZeroMQ套接字完成同样的工作? 在这种情况下,我一直在使用Linux的iproute2 ip addr add来创build地址和ZeroMQ PUB/SUB socket-archetypes。

在Linux上使用Python更改IP设置

我需要提供一个Python程序,允许用户dynamic改变他的设备(IP,掩码,DNS和网关)的networking参数。 例如,将他的IP从192.168.1.10/24更改为192.168.1.15/24。 我不想以root身份运行我的程序 – 但我可以给我的用户一些特定的权利(例如将用户添加到可以修改/usr/network/interfaces文件的组)。 我发现的是pynetlinux库,但它只提供IP和掩码修改,需要以root身份运行(或者我可能会误用它)。 我可以通过parsinginterfaces文件并运行一些bash / shell命令来做到这一点,但我不想重新发明轮子。 我很确定有些人已经有我的问题,做了一些伟大的事情。 我在Ubuntu 12.04上运行。 我需要我的程序在Ubuntu 14.04,CentOS和RedHat上工作

UTF-8和os.listdir()

对于包含“ş”字符的文件(UTF-8中的\xC8\x99 – 下面的拉丁小写字母S),我遇到了一些麻烦。 我正在创build一个ș.txt文件,并试图用os.listdir() 。 不幸的是, os.listdir()将其返回为s\xCC\xA6 (“s”+ COMBINING COMMA BELOW),而我的testing程序(如下)失败。 这发生在我的OS X上,但它在Linux机器上工作。 任何想法究竟是什么导致了这种行为(两个环境configurationLANG = en_US.UTF8)? 这里是testing程序: #coding: utf-8 import os fname = "ș.txt" with open(fname, "w") as f: f.write("hi") files = os.listdir(".") print "fname: ", fname print "files: ", files if fname in files: print "found" else: print "not found"

自动将客户端添加到nagios服务器

我有一个拥有超过50台服务器的Linux环境,由Nagios进行监控。 现在我们使用基于python web的GUI创build新的服务器,我们需要手动将它们添加到nagios服务器。 现在我们想自动添加新的服务器给Nagios。 有没有办法自动添加新的服务器到Nagios? 提前致谢

Python virtualenv – > venv / bin / python中的新的python可执行文件

我目前正在试图安装Sevabot这个教程: https ://sevabot-skype-bot.readthedocs.org/en/latest/ubuntu.html一切都很好,直到我需要安装Sevabot。 我可以下载virtualenv.py文件,但是当我想执行python virtualenv.py时,它会返回一个错误。 ~/sevabot$ python virtualenv.py venv New python executable in venv/bin/python Cannot find sdist setuptools-*.tar.gz Cannot find sdist pip-*.tar.gz 奇怪的是,我做了5次没有任何问题。 总是Ubuntu 12.04 x86_64。 已经做了几次干净的安装。 ~/sevabot$ uname -a Linux sbvps01 2.6.32-5-openvz-amd64 #1 SMP Fri May 10 09:43:55 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux Virtualenv是最新的: easy_install virtualenv Searching for virtualenv Best match: virtualenv 1.7.1.2 […]

Tesseract使用字母子集

我在Ubuntu Linux上使用tesseract–ocr包,我已经使用了一段时间,我认为,为了提高OCR的准确性,我只需要从字母表中的一个字母的子集。 我需要的信件是: 0123456789abcdefghijklmnopqrstuvwxyz 只有这些,甚至连大写字母,都没有人给我一个指示tesseract只能匹配一个字母子集的手吗? 谢谢,