小编Nik*_*iah的帖子

Python - 如何将字符串传递给subprocess.Popen(使用stdin参数)?

如果我执行以下操作:

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.我该如何解决这个问题?

python stdin subprocess

263
推荐指数
10
解决办法
29万
查看次数

你如何调试Mako模板?

到目前为止,我发现当Mako模板编码不正确时,无法生成可用的回溯.

有没有办法调试模板除了迭代每行代码?

python debugging templates mako jinja2

36
推荐指数
1
解决办法
8899
查看次数

Ruby如何完全面向对象?

所以,我很好奇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)

对不起,我在这一点上有点困惑.非常感谢任何澄清!谢谢!

ruby oop

10
推荐指数
3
解决办法
1538
查看次数

备份ZODB blob的正确方法是什么?

我使用plone.app.blob将大型ZODB对象存储在blobstorage目录中.这减少了Data.fs上的大小压力,但我无法找到有关备份此数据的任何建议.

我已经通过将网络备份工具指向repozo备份目录来备份Data.fs.我应该简单地将该工具指向blobstorage目录来备份我的blob吗?

如果正在重新打包数据库或在复制过程中添加和删除blob,该怎么办?blobstorage目录中是否有必须按特定顺序复制的文件?

python zope plone zodb blobstorage

7
推荐指数
2
解决办法
2463
查看次数

用Python装饰整个库

我是装饰师的想法的新手(并且仍然试图绕过他们),但我认为我遇到了一个非常适合他们的问题.我希望在数学库中包含所有函数的类.更具体地说,我的班级有两个成员,xflag.当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)

有关如何应用于整个函数库的任何建议或提示?

python decorator

2
推荐指数
2
解决办法
891
查看次数

标签 统计

python ×4

blobstorage ×1

debugging ×1

decorator ×1

jinja2 ×1

mako ×1

oop ×1

plone ×1

ruby ×1

stdin ×1

subprocess ×1

templates ×1

zodb ×1

zope ×1