小编dan*_*iel的帖子

bash中的Python zip()行为?

在bash中是否有类似的Python zip()函数?具体来说,我在不使用python的情况下在bash中寻找等效功能:

$ echo "A" > test_a
$ echo "B" >> test_a
$ echo "1" > test_b
$ echo "2" >> test_b
$ python -c "print '\n'.join([' '.join([a.strip(),b.strip()]) for a,b in zip(open('test_a'),open('test_b'))])"
A 1
B 2
Run Code Online (Sandbox Code Playgroud)

python bash

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

Python2.6的内置哈希方法是否跨架构稳定?

我需要计算一个需要在架构之间保持稳定的哈希.python的hash()是否稳定?

更具体地说,下面的示例显示了hash()在两个不同的主机/体系结构上计算相同的值:

# on OSX based laptop
>>> hash((1,2,3,4))
485696759010151909
# on x86_64 Linux host
>>> hash((1,2,3,4))
485696759010151909
Run Code Online (Sandbox Code Playgroud)

以上情况至少适用于那些输入,但我的问题是针对一般情况

python

13
推荐指数
4
解决办法
2121
查看次数

Python doctest是否消除了对单元测试的需求?

我所参与的项目的开发人员认为,doctests与单元测试一样好,并且如果一段代码被证明,则不需要进行单元测试.我不相信这是事实.任何人都可以提供一些可靠的,理想上引用的例子来支持或反对doctests取代单元测试需求的论点吗?

谢谢-Daniel

编辑:任何人都可以提供一个参考,表明doctesting不应该取代单元测试?

python doctest unit-testing

12
推荐指数
3
解决办法
3064
查看次数

Python中的tcsh

我对tcsh没有多少经验,但我对学习很感兴趣.我一直在让Python看到PYTHONPATH.我可以回显$ PYTHONPATH,这是正确的,但是当我启动Python时,我的路径不会出现在sys.path中.有任何想法吗?

编辑:

[dmcdonal@tg-steele ~]$ echo $PYTHONPATH
/home/ba01/u116/dmcdonal/PyCogent-v1.1

>>> from sys import path
>>> from os import environ
>>> path
['', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages/setuptools-0.6c8-py2.5.egg', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages/FiPy-2.0-py2.5.egg', '/apps/steele/Python-2.5.2', '/apps/steele/Python-2.5.2/lib/python25.zip', '/apps/steele/Python-2.5.2/lib/python2.5', '/apps/steele/Python-2.5.2/lib/python2.5/plat-linux2', '/apps/steele/Python-2.5.2/lib/python2.5/lib-tk', '/apps/steele/Python-2.5.2/lib/python2.5/lib-dynload', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages', '/apps/steele/Python-2.5.2/lib/python2.5/site-packages/Numeric']
>>> environ['PYTHONPATH']
'/apps/steele/Python-2.5.2'
Run Code Online (Sandbox Code Playgroud)

python tcsh

6
推荐指数
1
解决办法
3893
查看次数

倒if语句

是否有特别的理由偏爱跨入多个区块而不是捷径?例如,采用以下两个函数来评估多个条件。第一个示例进入每个块,而第二个示例捷径。这些示例在Python中进行,但问题不限于Python。它也过于琐碎。

def some_function():
    if some_condition:
        if some_other_condition:
            do_something()
Run Code Online (Sandbox Code Playgroud)

def some_function():
    if not some_condition:
        return
    it not some_other_condition:
        return
    do_something()
Run Code Online (Sandbox Code Playgroud)

coding-style

6
推荐指数
1
解决办法
3417
查看次数

将程序作为字符串传递给Python时使用import和for循环

一位同事最近给我发了一个包含一些内联Python的bash脚本.他使用的命令是以下形式:

$ echo -e 'from foo import bar\nfor i in range(10):\n   bar(i+1).thing = "something"\n\n' | python
Run Code Online (Sandbox Code Playgroud)

这个命令工作正常,但我问他为什么不使用python -c.在进一步调查中,我们无法将其转换为python -c可接受的形式,因为即使用分号分隔,Python也不允许在for循环之前使用语句.

下面的第一个示例显示您可以导入并打印导入的对象.第二个示例显示您可以使用for循环并从for循环中打印.第三个例子结合了前两个,结果是a SyntaxError.最后,第四个示例显示了SyntaxError在for循环之前使用表达式时的结果:

$ python -c "from sys import argv; print argv"
['-c']
$ python -c "for v in [1,2,3,4]: print v"
1
2
3
4
$ python -c "from sys import argv; for v in argv: print v"
  File "<string>", line 1
    from sys import argv; for v in argv: print v
                            ^
SyntaxError: …
Run Code Online (Sandbox Code Playgroud)

python

6
推荐指数
1
解决办法
714
查看次数

使用龙卷风来提供大文件

我们需要使用Tornado来提供需要身份验证才能访问的大型文件(多个GB).从我们所知道的情况来看,通过这样做get并通过文件分块Task可能会很慢或阻塞.是否有推荐的方法来提供需要身份验证的大型文件?

python tornado

6
推荐指数
1
解决办法
1239
查看次数

捕获直接重定向到/ dev/tty

我正在为一个程序的应用程序控制器工作,该程序将文本直接吐出到/ dev/tty.

这是一个生产应用程序控制器,必须能够捕获所有发送到终端的文本.通常,这不是问题.我们只是重定向stdout和stderr.这个特殊的应用程序直接调用echo并将结果重定向到/ dev/tty(echo "some text" > /dev/tty).通过我的应用程序控制器重定向无法捕获文本.

我确实有这个应用程序的源代码,但我无法修改它,也不再维护它.关于如何捕获和/或丢弃输出的任何想法?

linux terminal tty

5
推荐指数
1
解决办法
4693
查看次数

Python 的 DeepCopy 的迭代版本

Python 2.5.2 是否有深度复制迭代版本的现有实现?复制模块中提供的深度复制方法是递归的,并且在大型树上失败。我无法在运行时安全地增加堆栈限制。

编辑

我确实追踪到了这一点:

http://code.activestate.com/recipes/302535/

我还没有测试过,但看起来它有潜力。

python iteration recursion

5
推荐指数
1
解决办法
1420
查看次数

将ascii和二进制数据存储在单个制表符分隔文件中

我陷入了这样一种情况:将ascii和二进制数据存储在制表符分隔文件中是有利的.我最初的尝试是可怕的.这甚至值得追求吗?有什么建议?我需要能够轻松地干净地解析生成的制表符分隔文件.下游,这些数据将进入MySQLdb.将二进制数据存储在db中会很好.

mysql

3
推荐指数
1
解决办法
473
查看次数

在锯齿状列表的词典顺序中,所有组合的更好实现是什么?

我今天处于一个位置,我需要列举所有可能的锯齿状列表组合.例如,一种天真的方法是:

for a in [1,2,3]:
    for b in [4,5,6,7,8,9]:
        for c in [1,2]:
            yield (a,b,c)
Run Code Online (Sandbox Code Playgroud)

这是有用的,但在可以使用的列表数量方面不是通用的.这是一个更通用的方法:

from numpy import zeros, array, nonzero, max

make_subset = lambda x,y: [x[i][j] for i,j in enumerate(y)]

def combinations(items):
    num_items = [len(i) - 1 for i in items]
    state = zeros(len(items), dtype=int)
    finished = array(num_items, dtype=int)
    yield grab_items(items, state)
    while True:
        if state[-1] != num_items[-1]:
            state[-1] += 1
            yield make_subset(items, state)
        else:
            incrementable = nonzero(state != finished)[0]
            if not len(incrementable):
                raise StopIteration
            rightmost = max(incrementable) …
Run Code Online (Sandbox Code Playgroud)

python algorithm

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

numpy中的数组扩展

我想做的是采用输入整数数组,并将其数据扩展为索引(例如,[2,1] - > [2,2,1]).如果术语关闭,我道歉 - 我不确定描述这个的最佳方式,因此,这可能是重复的.

以下是我现有方法的一个示例:

>>> def expand(a):
...     b = np.empty(a.sum(), dtype=np.int32)
...     idx = 0
...     for i in a:
...         for j in range(i):
...             b[idx] = i
...             idx += 1
...     return b
... 
>>> a = np.array([3, 2, 1, 4])
>>> expand(a)
array([3, 3, 3, 2, 2, 1, 4, 4, 4, 4], dtype=int32)
Run Code Online (Sandbox Code Playgroud)

在嵌套的for循环中调用此方法,我希望从中挤出额外的性能.以下是当前的定时通话:

>>> a = np.random.randint(0, 1000, 1000)
>>> %timeit expand(a)
10 loops, best of 3: 86.9 ms per loop …
Run Code Online (Sandbox Code Playgroud)

python numpy

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

Tornado 的 reverse_url 到完全限定的 URL

Tornadoreverse_url不是完全限定的 URL。Tornado 中是否有一种机制可以取回完全合格的 URL?例如:

>>> some_method('foo', 1234)
http://localhost:8080/foo/1234
Run Code Online (Sandbox Code Playgroud)

python tornado

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