Articles of python

Python多进程+subprocess问题

我有一个二进制(如a.out ),我想用不同的configuration调用。 我想在一台40核心的机器上并行运行这些configuration。 下面是我的代码草图。 这是非常简单的:我生成一个configuration,并进入工人,工人与configuration使用subprocess调用二进制。 我也将输出redirect到一个文件。 我们来调用这段代码run.py def worker(cmdlist, filename): outputfile = open(filename, 'wb') // here it essentially executes a.out config > outputfile subprocess.call(cmdlist, stderr=outputfile, stdout=outputfile) outputfile.close() def main(): pool = Pool(processes = 40) for config in all_configs filename, cmdlist = genCmd(config) res = pool.apply_async(worker, [cmdlist, filename]) results.append(res) for res in results: res.get() pool.close() 但是在我启动之后,我意识到我没有产生尽可能多的进程。 […]

打开Python(文件,Vr)是否应该更新一次?

每当我用Python open()一个文件,最后的访问时间不会更新,这是非常奇怪的: 如果我用r/rb打开,如果我统计文件的话,什么都不会改变 如果我用w/r+或ctime和mtime更新正确打开,但不是atime打开 它看起来不像是一个文件系统问题(在这种情况下是ext3),因为如果我触摸或捕捉文件,它会正确更新。 我一直没能find很多关于它的信息。 是应该这样做还是有什么问题?

为什么在python中inputunicode字符-c抛出exception

如果我input这个python控制台 >>> ord(u'⚤') 它的工作,但是当我尝试从bash把它放入python -c python -c "print ord(u'⚤')" 它抛出: File "<string>", line 1 print ord(u'⚤') ^ SyntaxError: EOL while scanning string literal 有人知道为什么?

遍历一个目录

我正在寻找一种方法来遍历包含100,000个文件的目录。 使用os.listdir TERRIBLY很慢,因为这个函数首先从整个指定的path中取得path列表。 什么是最快的select? 注:谁downvoted从来没有面对这种情况是肯定的。

在Python中检查Linux上的USB驱动器?

我正在尝试使用Python中的一个系统来检查USB驱动器上是否存在文件,如果没有驱动器,则等待dbus系统注册新设备,然后再次检查。 我有检查mtab位下来。 我有检查,如果文件存在位下来。 我有dbus位工作,但是我现在正在挣扎的是,当驱动器被注册时,使它突破dbus位,所以我可以检查mtab,然后检查文件。 我希望这是有道理的。 我会为可怜的编码风格道歉 – 我只是进入它。 这是我迄今为止: #!/usr/bin/env python import string, time, os, dbus, gobject, sys from dbus.mainloop.glib import DBusGMainLoop def device_added_callback(device): print ("Block device added. Check if it is partitioned") usbdev = "".join(device.split("/")[5:6]) if usbdev.endswith("1") == 1: print ("Block device is partitioned. Waiting for it to be mounted.") # This is where […]

Gtk / python和可移植性

程序员如何编写适用于多个发行版的可移植UI代码? 我正在考虑桌面分布,而不是专业/embedded式分布。 为了编写用户界面应用程序,您必须假定某些事情可以在标准平台上或通过添加的依赖关系在平台上使用。 有没有Linux发行版本拥有的“最小”UI / widget标准? 当你编写代码时,Gnome和KDE发行版是如何形成的? 我有一个使用Gtk和Webkit的Python脚本。 以下是我的脚本使用的导入。 import os import threading from gi.repository import WebKit from gi.repository import Gtk from gi.repository import GLib, GObject 什么将是最好的来源,找出我的代码将在哪些分布的工作?

CREATE TRIGGER sys_exec和python

我在/ usr / esercizi /上的python是: #!/usr/bin/python import datetime now = datetime.datetime.now() aa = now.strftime("%Y-%d-%m %H:%M | %S") out_file = open("/usr/esercizi/test.txt","w") out_file.write("La data di oggi \n\n") out_file.write(aa) out_file.close() 为了testing的目的我喜欢它从TRIGGER调用: mysql> CREATE TRIGGER `notifica_cambiamenti` AFTER UPDATE ON `valore` -> FOR EACH ROW BEGIN -> -> SET @exec_var = sys_exec(CONCAT('python /usr/esercizi/tre.py ', NEW.valore)); -> END; -> $$ Query […]

为了安全学习python,遇到了麻烦

前言:我完全知道,如果不是在testing机器上,这可能是非法的。 我正在做这个学习python的安全和渗透testing的学习练习。 这只会在我拥有的Linux机器上完成,并完全控制。 我正在学python作为我的第一个脚本语言,希望能够在安全的位置使用。 在询问脚本的想法来帮助自我教导的时候,有人build议我为用户枚举创build一个。想法很简单,从没有sudo权限的帐户中从/ etc / passwd中剔除用户名并尝试“su '使用我拥有的一个密码进入这些帐户。 一种反向蛮力的种类,而不是一个单一的用户与一个密码列表,我使用一个单一的密码与用户列表。 我的问题是,无论我如何接近这个,脚本挂起或停在“密码:”提示。 我已经尝试了多种方法,从使用os.system和回显密码,将其作为variables传递,并使用pexpect模块。 似乎没有任何工作。 当我谷歌,所有的build议都指向使用sudo,在这种情况下,作为我有权访问的用户不是一个有效的选项,没有sudo权限。 为了完成这个挑战,我对此绝望不已。 在IRC和我所有的编程向导朋友中,我已经询问了reddit,并且超出了echo“password”| sudo -S su,哪个用户不在sudoers文件中,所以不能工作。 当我只用echo“password”|尝试同样的事情 su我得到su:必须从terminal运行。 这是#和$提示符。 这甚至有可能吗?

有了subprocess允许rpc-服务器重新启动,而孩子们生存

脚本 我有一个rpc-服务器需要产生持续数天的重要进程( multiprocessing.Process )。 出于安全/安全考虑,我不希望这些进程依赖于rpc-服务器。 因此,我希望服务器能够在进程运行时死亡并能够重新启动 。 孤儿过程 这个问题是可以解决的( 不要粘贴在你不想松散的工作,它会closures你的python会话 ): import os import multiprocessing import time def _job(data): for _ in range(3): print multiprocessing.current_process(), "is working" time.sleep(2) print multiprocessing.current_process(), "is done" #My real worker gets a Connection-object as part of a #multiprocessing.Pipe among other arguments worker = multiprocessing.Process(target=_job, args=(None,)) worker.daemon = True worker.start() os._exit(0) […]

在Linux上使用密码保护的Excel表格

问题很简单。 每个星期我都会收到一堆密码保护的excel文件。 我必须parsing它们,并使用Python将某些部分写入新文件。 我给了这些文件的密码。 在Windows上完成这个操作很简单,我只需导入win32com并使用client.Dispatch即可。 但是现在我们把所有的代码移到linux上,所以我没有win32com。 有没有办法打开和读取密码保护Excel中的Python在Python上的数据? 我一直在寻找简单的方法来打开密码保护的Excel文件,但没有运气。 我也尝试find一种方法来删除密码保护,所以我可以使用xlrd,就像我没有密码保护的文件,但没有运气去那条路线。 非常感激任何的帮助。