小编Cra*_*een的帖子

Python 2.6和3中的bytes vs bytearray

我在Python 2.6中尝试使用bytesvs.bytearray我不明白一些差异的原因.

一个bytes迭代器返回的字符串:

for i in bytes(b"hi"):
    print(type(i))
Run Code Online (Sandbox Code Playgroud)

得到:

<type 'str'>
<type 'str'>
Run Code Online (Sandbox Code Playgroud)

bytearray迭代器返回ints:

for i in bytearray(b"hi"):
    print(type(i))
Run Code Online (Sandbox Code Playgroud)

得到:

<type 'int'>
<type 'int'>
Run Code Online (Sandbox Code Playgroud)

为什么不同?

我想编写能够很好地转换为Python 3的代码.那么,Python 3中的情况是否相同?

python byte bytearray python-2.x python-3.x

20
推荐指数
3
解决办法
3万
查看次数

rand()的实现

我在C中编写一些嵌入式代码,需要使用rand()函数.不幸的是,控制器的库不支持rand().我需要一个快速的简单实现,但更重要的是空间开销很小,产生相对高质量的随机数.有谁知道使用哪种算法或示例代码?

编辑:它用于图像处理,因此"相对高质量"意味着良好的循环长度和良好的均匀特性.

c random embedded

19
推荐指数
2
解决办法
3万
查看次数

来自Python hash()函数的正整数

我想使用Python hash()函数从对象中获取整数哈希值.但内置hash()可以给出负值,我只想要积极.我希望它能够在32位和64位平台上合理地工作.

即,在32位的Python,hash()可以在范围返回一个整数-2**312**31 - 1.在64位系统中,hash()可在范围内返回一个整数-2**632**63 - 1.

但我想的范围内的散列02**32-1在32位系统,以及02**64-1在64位的系统.

将哈希值转换为32位或64位目标平台范围内的等效正值的最佳方法是什么?

(上下文:我正在尝试创建一个新的random.Random样式类.根据random.Random.seed()文档,种子"可选参数x可以是任何可清除对象."所以我想复制该功能,除了我的种子算法不能处理负整数值,只有正数.)

python hash cross-platform

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

处理在except子句中发生的Python异常

我在Python except子句中有一些代码用于执行某些日志记录,但日志记录代码本身可能会导致异常.在我的情况下,我想忽略可能发生的任何第二个异常,并引发原始异常.这是一个非常简单的例子:

try:
    a = this_variable_doesnt_exist
except:
    try:
        1/0
    except:
        pass
    raise
Run Code Online (Sandbox Code Playgroud)

运行上面的代码,我希望得到:

NameError: name 'this_variable_doesnt_exist' is not defined
Run Code Online (Sandbox Code Playgroud)

但相反,在Python 2.x中,我得到:

ZeroDivisionError: integer division or modulo by zero
Run Code Online (Sandbox Code Playgroud)

我发现在Python 3.x中,它可以满足我的需求.

我在Python 2.x文档中找不到这方面的评论(除非我错过了).我可以在2.x中实现这一点吗?

python exception

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

如何组织PyPI的Python模块以支持2.x和3.x.

我有一个Python模块,我想上传到PyPI.到目前为止,它适用于Python 2.x. 现在编写3.x版本应该不会太难.

但是,遵循在这些地方制作模块的指导原则:

我不清楚如何为不同版本的Python支持多个源代码发布,并且不清楚PyPI是否/如何支持它.我设想我会有单独的代码:

  • 2.X
  • 2.6(也许,作为使用新缓冲区API的特殊情况)
  • 3.X

如何在PyPI中设置Python模块,以便有人可以:

easy_install modulename
Run Code Online (Sandbox Code Playgroud)

无论用户是使用2.x还是3.x,它都会安装正确的东西?

python software-distribution python-2.x python-3.x

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

解压缩OpenOffice文件,以便在版本控制中获得更好的存储空间

我听说过关于OpenOffice(ODF)文件是如何压缩XML和其他数据的zip文件的讨论.因此,对文件进行微小更改可能会完全改变数据,因此增量压缩在版本控制系统中不能很好地工作.

我已经对OpenOffice文件进行了基本测试,解压缩然后以零压缩方式重新压缩它.我使用Linux zip实用程序进行测试.OpenOffice仍然乐意打开它.

所以我想知道在每次提交版本控制之前是否值得开发一个小实用程序来运行ODF文件.对这个想法的任何想法?可能更好的选择?

其次,实现这个小实用程序的好方法是什么?调用zip的Bash shell(可能只是Linux)?蟒蛇?你能想到的任何陷阱?显然,我不想意外地破坏文件,并且有几种方法可能发生.

我能想到的可能的陷阱:

  • 磁盘空间不足
  • 一些其他权限问题会阻止写入文件或临时文件
  • ODF文档是加密的(可能应该只留下这些;加密可能还会导致大文件更改,从而阻止有效的delta压缩)

version-control openoffice.org

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

PIP安装没有setup.py文件的Python包?

我试图找出如何安装没有pipsetup.py文件的python包.(有问题的包是http://code.google.com/p/django-google-analytics/)

通常我会将repo和符号链接中的代码签出到我的站点包中,但我试图将整个环境冻结成一个pip需求文件,以便于部署和测试.

有任何想法吗?

python pip setuptools easy-install

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

CherryPy是一个强大的网络服务器(即,在像Apache这样的巨大负载下它是否可靠)?

我想知道,因为据我所知,CherryPy纯粹是用Python构建的,这显然比C等慢.这是否意味着它只适用于开发/测试环境,或者我可以在NGINX后面使用它,就像我目前使用Apache和Fast CGI一样

python webserver cherrypy

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

Py3k和IPython

我正在进行Python 3,但似乎无法找到它的IPython版本.主要的IPython 发布页面没有列出任何合适的内容.任何帮助让IPython为Py3k工作的人都会非常感激.

ipython python-3.x

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

以编程方式查找已安装的pywin32版本

一些Python包为程序提供了获取已安装版本的方法.例如

>>> import numpy
>>> numpy.version.version
'1.5.0'
Run Code Online (Sandbox Code Playgroud)

但我无法找到办法pywin32.有什么好办法可以找到答案?

python pywin32 version

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