Articles of python

给予python GUI应用程序的root权限以在ubuntu中运行命令

现在,我有一个python GUI应用程序需要运行sudo权限的命令,如下所示: import commands iStat, askpassPath = commands.getstatusoutput("which ssh-askpass") cmd = "export SUDO_ASKPASS=%s;sudo -A mkdir -p /usr/lib/test"%(askpassPath) commands.getstatusoutput(cmd) 这工作正常,如果ssh-askpass已经安装在ubuntu.But似乎有些Ubuntu系统不安装它默认情况下,我不能安装它们。 所以,我需要知道是否有另一种方法让我获得sudo特权。 提前致谢。 编辑:应用程序不应该以root权限启动。只有在运行时才需要root权限。

Python:打string时从文本文件中打印下一行x行

情况如下: 我有一个.txt文件,几个nslookups的结果。 我想循环tru文件,每遇到string“Non-authoritative answer:”,脚本必须从该位置打印下面的8行。 如果它工作,我应该得到所有在我的屏幕上的积极成果:)。 首先我有以下代码: #!/bin/usr/python file = open('/tmp/results_nslookup.txt', 'r') f = file.readlines() for positives in f: if 'Authoritative answers can be found from:' in positives: print positives file.close() 但是,只有打印“权威的答案可以find:”在.txt中的时间。 代码我现在有: #!/bin/usr/python file = open('/tmp/results_nslookup.txt', 'r') lines = file.readlines() i = lines.index('Non-authoritative answer:\n') for line in lines[i-0:i+9]: print line, file.close() 但是当我运行它时,它将第一个结果很好地打印到我的屏幕上,但不打印其他结果。 PS我知道socket.gethostbyname(“foobar.baz”),但首先我想解决这个基本问题。 先谢谢你!

设置Linux以使用特定版本的python进行编译

我正在运行Ubuntu来编译一组需要python 2.4的代码。 我怎样才能设置terminal启动器,以便当我打开启动所有python相关的命令将使用python 2.4,而不是在Ubuntu默认的python 2.6?

如何在没有root权限的机器上安装virtualenv

我想在我没有root权限的Linux机器上安装virtualenv。 我看到了nettuts的屏幕录像( http://net.tutsplus.com/tutorials/python-tutorials/python-power-tools-virtualenv/ ),并试图按照步骤,但得到以下错误。 任何帮助表示赞赏。 /home/x01010/python/virtualenv-1.9.1 > which python /opt/xpyv/bin/python /home/x01010/python/virtualenv-1.9.1 > python virtualenv.py foo PYTHONHOME is set. You *must* activate the virtualenv before using it Traceback (most recent call last): File "virtualenv.py", line 2577, in <module> main() File "virtualenv.py", line 979, in main no_pip=options.no_pip) File "virtualenv.py", line 1081, in create_environment site_packages=site_packages, clear=clear)) File "virtualenv.py", […]

python的fcntl.flock函数是否提供文件访问的线程级locking?

Python的fcnt模块提供了一个名为[flock] [1]的方法来certificate文件locking。 它的描述如下: 对文件描述符fd执行锁操作op(也接受提供fileno()方法的文件对象)。 有关详细信息,请参阅Unix手册(2)。 (在某些系统上,这个函数是用fcntl()模拟的。) 查看flock的linux手册页,只涉及到跨进程locking,例如: 对flock()的调用可能会阻止另一个进程持有不兼容的锁。 要做出一个非阻塞的请求,包括LOCK_NB(ORing)与上述任何操作。 所以我的问题是:将flock()还提供线程安全locking和locking同一进程内的多个线程以及来自不同进程的线程? [1]: http : //docs.python.org/library/fcntl.html#fcntl.flockfunction是使用fcntl()模拟的。)

从subprocess更改父进程的目录

我创build了一个很酷的Python程序,可以帮助用户以交互方式导航到其他目录。 当他们到达那里,我想让他们击中input并退出程序,留在选定的目录。 然而,你总是最终在同一个目录,你开始在B / C只有subprocesspython的运行实际上改变目录和父进程的目录保持不变。

如何读取argv值而无需转义string?

我正在写一个名为flac2m4a的python脚本,它调用ffmpeg将.flac文件转换为.m4a文件。 核心程序是这样的: cmd = "ffmpeg -i %s -acodec alac %s.m4a" % (sys.argv[1], sys.argv[1][:-5]) os.system(cmd) 我可以使用这样的程序: ./flac2m4a path_to_the_song.flac 但是当我用一些特殊字符的名字来运行它时, ./flac4m4a.py Justin\ Bieber\ -\ Never\ Say\ Never\ -\ The\ Remixes/01\ -\ Never\ Say\ Never\ \(feat.\ Jaden\ Smith\).flac 在linux下,当我按Tab键自动完成时,特殊的字符会被一个\转义,但是当我从sys.argv[1]读取它们时,它们将被Python转换成普通的string: Justin Bieber – Never Say Never – The Remixes/01 – Never Say Never (feat. Jaden Smith).flac 所以我只是想知道如何阅读argv[1]完全按照用户input(与这些\ )

卸载从源生成的PIL

我使用这个教程来安装PIL。 现在,我想卸载它,并安装pillow的地方。 mkdir -p ~/src ~/lib/python2.7 cd ~/src wget http://effbot.org/media/downloads/PIL-1.1.7.tar.gz tar zxf PIL-1.1.7.tar.gz cd PIL-1.1.7 python2.7 setup.py build_ext -i python2.7 setup.py install 我如何卸载PIL? PS:我没有安装任何我的virtualenvs PIL。 这是一个全球性的安装。 但是,我正在使用virtualenvs来处理所有的项目。

stream式audio和video

我一直在尝试一段时间,但挣扎。 我有两个项目: 将audiostream式传输到服务器以通过networking分发 将audio和video从networking摄像头传输到服务器,以通过networking分发。 到目前为止,我已经尝试了ffmpeg和ffserver,PulseAudio,mjpegstreamer(我得到了这个工作,但没有audio)和IceCast都没有运气。 虽然我确定这可能是我的错,但我想知道是否还有其他的select? 我花了一段时间尝试Linux的select,也想知道是否有与Python最近玩OpenCV的选项。 如果任何人都可以提出更多的select来研究Python或Linux的基础上,将不胜感激或指向我一些很好的教程或解释我已经使用它将不胜感激。

我怎样才能创buildMySQL数据库的增量备份

我有mysql5.6 Linux mysql5.6 centos 6.4服务器 我有这样的每小时一次的mysql数据库备份的cron工作 它在python中 os.popen("mysqldump -u %s –password=%s -h %s -e –opt –skip-lock-tables –skip-extended-insert -c %s | gzip -c > %s.gz" % (username, password, hostname, database, filename)) 问题是数据变得很less,但每次我必须备份所有数据库24次,这占用了太多的空间。 什么是最好的select 有什么办法进行增量备份,这样我就可以对数据库进行1次完整备份,每周只进行一次增量备份。 我想单独的数据库不是所有的单独的文件MySQL,所以如果我需要恢复单个数据库,那么我也可以做到这一点