如果我执行以下操作:
import subprocess
from cStringIO import StringIO
subprocess.Popen(['grep','f'],stdout=subprocess.PIPE,stdin=StringIO('one\ntwo\nthree\nfour\nfive\nsix\n')).communicate()[0]
Run Code Online (Sandbox Code Playgroud)
我明白了:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 533, in __init__
(p2cread, p2cwrite,
File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 830, in _get_handles
p2cread = stdin.fileno()
AttributeError: 'cStringIO.StringI' object has no attribute 'fileno'
Run Code Online (Sandbox Code Playgroud)
显然,一个cStringIO.StringIO对象不能足够接近文件duck以适应subprocess.Popen.我该如何解决这个问题?
到目前为止,我发现当Mako模板编码不正确时,无法生成可用的回溯.
有没有办法调试模板除了迭代每行代码?
所以,我很好奇Ruby是一种完全面向对象的语言.我偶然发现了一个对我来说不太清楚的问题.
如果我定义一个函数如下
def foo(text)
print text
end
Run Code Online (Sandbox Code Playgroud)
我在一个类之外定义函数,这个函数如何成为一个对象?我意识到我可以打电话
foo.class
Run Code Online (Sandbox Code Playgroud)
我得到了NilClass.这是否意味着foo是NilClass的一个实例?如果是的话,当我打电话时,它究竟意味着什么
foo "hello world"
Run Code Online (Sandbox Code Playgroud)
如果foo是一个对象,当我按上述方式进行语句时,我会调用什么方法.此外,如果它是一个对象,这是否意味着我可以修改它并添加另一个方法(比如bar),我可以在其中制作以下语句:
foo.bar(some variables)
Run Code Online (Sandbox Code Playgroud)
对不起,我在这一点上有点困惑.非常感谢任何澄清!谢谢!
我使用plone.app.blob将大型ZODB对象存储在blobstorage目录中.这减少了Data.fs上的大小压力,但我无法找到有关备份此数据的任何建议.
我已经通过将网络备份工具指向repozo备份目录来备份Data.fs.我应该简单地将该工具指向blobstorage目录来备份我的blob吗?
如果正在重新打包数据库或在复制过程中添加和删除blob,该怎么办?blobstorage目录中是否有必须按特定顺序复制的文件?
我是装饰师的想法的新手(并且仍然试图绕过他们),但我认为我遇到了一个非常适合他们的问题.我希望在数学库中包含所有函数的类.更具体地说,我的班级有两个成员,x和flag.当flag为true时,我想要调用原始数学函数.当flag为false时,我想返回None.
作为我在这里要求的框架是这个类:
import math
class num(object):
def __init__(self, x, flag):
self.x = x
self.flag = flag
def __float__(self):
return float(self.x)
Run Code Online (Sandbox Code Playgroud)
结果,这很好:
a = num(3, True)
print math.sqrt(a)
Run Code Online (Sandbox Code Playgroud)
然而,这应该(在我完美的世界),返回无:
b = num(4, False)
print math.sqrt(b)
Run Code Online (Sandbox Code Playgroud)
有关如何应用于整个函数库的任何建议或提示?