我需要从Python脚本asynchronous运行一个shell命令。 通过这个我的意思是我希望我的Python脚本能够在外部命令closures时继续运行,并执行任何需要的操作。 我读过这篇文章: 在Python中调用外部命令 然后,我去了,做了一些testing,它看起来像os.system()将做的工作,只要我在命令的末尾使用& ,以便我不必等待它返回。 我想知道的是,如果这是完成这样的事情的正确方法? 我尝试了commands.call()但它不会为我工作,因为它阻止外部命令。 请让我知道如果使用os.system()这是可取的,或者如果我应该尝试其他的路线。
我有一个数字列表: myList = [1, 2, 3, 100, 5] 现在,如果我sorting这个列表来获得[1, 2, 3, 5, 100] 。 我想要的是从sorting的原始列表中的元素的索引,即[0, 1, 2, 4, 3] 0,1,2,4,3 [0, 1, 2, 4, 3] – MATLAB的sorting函数返回值和索引。
我试图使用XMLHttpRequest (使用最近的Webkit)下载一个二进制文件,并使用这个简单的函数对它的内容进行base64编码: function getBinary(file){ var xhr = new XMLHttpRequest(); xhr.open("GET", file, false); xhr.overrideMimeType("text/plain; charset=x-user-defined"); xhr.send(null); return xhr.responseText; } function base64encode(binary) { return btoa(unescape(encodeURIComponent(binary))); } var binary = getBinary('http://some.tld/sample.pdf'); var base64encoded = base64encode(binary); 作为一个侧面说明,以上所有内容都是标准的Javascript东西,包括btoa()和encodeURIComponent() : https : //developer.mozilla.org/en/DOM/window.btoa 这工作相当顺利,我甚至可以使用Javascript解码base64内容: function base64decode(base64) { return decodeURIComponent(escape(atob(base64))); } var decodedBinary = base64decode(base64encoded); decodedBinary === binary // true 现在,我想使用Python解码base64编码的内容,它使用一些JSONstring来获得base64编码的string值。 天真地这就是我所做的: […]
dir(re.compile(pattern)) 不作为列表元素之一返回模式。 即它返回: ['__copy__', '__deepcopy__', 'findall', 'finditer', 'match', 'scanner', 'search', 'split', 'sub', 'subn'] 根据手册,它应该包含 对象的属性名称,类的属性名称和recursion的类的基类的属性。 它也这样说 该列表不一定完整。 有没有办法得到完整的清单? 我总是认为迪尔返回一个完整的列表,但显然它不… 另外:有没有办法只列出属性? 还是只有方法? 编辑:这实际上是一个python的错误 – >据说它是固定在3.0分支(也许还在2.6)
我很熟悉我应该将HTTP_RPOXY环境variables设置为代理地址。 一般urllib工作正常,问题是处理urllib2。 >>> urllib2.urlopen("http://www.google.com").read() 回报 urllib2.URLError: <urlopen error [Errno 10061] No connection could be made because the target machine actively refused it> 要么 urllib2.URLError: <urlopen error [Errno 11004] getaddrinfo failed> 额外信息: urllib.urlopen(….)正常工作! 这只是urllib2是玩技巧… 我试过@Fenikso答案,但现在我得到这个错误: URLError: <urlopen error [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of […]
假设我有一组这样的数据对,其中索引0是数值,索引1是数据types: input = [ ('11013331', 'KAT'), ('9085267', 'NOT'), ('5238761', 'ETH'), ('5349618', 'ETH'), ('11788544', 'NOT'), ('962142', 'ETH'), ('7795297', 'ETH'), ('7341464', 'ETH'), ('9843236', 'KAT'), ('5594916', 'ETH'), ('1550003', 'ETH') ] 我想按他们的types(按第一个索引string)将它们分组: result = [ { type:'KAT', items: ['11013331', '9843236'] }, { type:'NOT', items: ['9085267', '11788544'] }, { type:'ETH', items: ['5238761', '962142', '7795297', '7341464', '5594916', '1550003'] } ] 我怎样才能以有效的方式实现这一点? […]
为了将整数转换为二进制,我已经使用这个代码: >>> bin(6) '0b110' 何时擦除'0b',我用这个: >>> bin(6)[2:] '110' 如果我想将6显示为00000110而不是110我该怎么办?
假设我有一个大内存numpy数组,我有一个函数func ,在这个巨大的数组作为input(连同一些其他参数)。 具有不同参数的func可以并行运行。 例如: def func(arr, param): # do stuff to arr, param # build array arr pool = Pool(processes = 6) results = [pool.apply_async(func, [arr, param]) for param in all_params] output = [res.get() for res in results] 如果我使用多处理库,那么这个巨型数组将被多次复制到不同的进程中。 有没有办法让不同的进程共享相同的数组? 这个数组对象是只读的,不会被修改。 更复杂的是,如果arr不是一个数组,而是一个任意的python对象,有没有办法共享呢? [EDITED] 我读了答案,但我仍然有点困惑。 由于fork()是copy-on-write,因此在python多处理库中产生新进程时,不应该调用任何额外的开销。 但是下面的代码表明有一个巨大的开销: from multiprocessing import Pool, Manager import numpy as np; […]
由于Python的string不能改变,我想知道如何更有效地连接string? 我可以这样写: s += stringfromelsewhere 或者像这样: s = [] s.append(somestring) later s = ''.join(s) 在写这个问题的时候,我发现了一篇关于这个话题的好文章。 http://www.skymind.com/~ocrow/python_string/ 但它是Python 2.x.所以这个问题会在Python 3中做一些改变吗?
如何在Python中设置当前工作目录?