小编Sel*_*cuk的帖子

Python程序运行一周,然后神秘失败

我有一个正常运行的python程序,然后在很长一段时间后失败,我不明白为什么会发生这种情况.

这是为了在我的覆盆子pi上开一个PiGlow板.
PiGlow

没有更好的处理,我让它以二进制格式显示时间,由制造商提供的clock.py来演示电路板.

代码如下所示:

from pyglow import PyGlow
from datetime import datetime

pyglow = PyGlow()

while True:
    time = datetime.now().time()
    hour,min,sec = str(time).split(":")
    sec,micro = str(sec).split(".")

    # do stuff with the hour, min, sec, write them to the LEDs

# that's all, no delay or anything else, so the loop runs like crazy
Run Code Online (Sandbox Code Playgroud)

它将正常运行一天或一周,然后失败,如下所示:

pi@pi ~/pyglow $ sudo python clock.py    
Traceback (most recent call last):    
  File "clock.py", line 37, in <module>  
    sec,micro = str(sec).split(".")    
ValueError: need more than 1 value …
Run Code Online (Sandbox Code Playgroud)

python crash python-2.7 raspberry-pi

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

带有 TypeError 的 Python struct.unpack 错误:需要类似字节的对象,而不是“str”

有人可以帮助解决以下代码行和错误吗?我不熟悉python值转换。

产生错误的具体行是:

value = struct.unpack("<h",chr(b)+chr(a))[0]
Run Code Online (Sandbox Code Playgroud)

类型错误:需要类似字节的对象,而不是“str”

代码片段是:

                    if packet_code ==0x80: # raw value
                        row_length = yield
                        a = yield
                        b = yield
                        value = struct.unpack("<h",chr(b)+chr(a))[0]
Run Code Online (Sandbox Code Playgroud)

输入数据为:

b'\x04\x80\x02\x00\xb2\xcb\xaa\xaa\x04\x80\x02\x00p\r\xaa\xaa\x04\x80\x02\x00] \xaa\xaa\x04\x80\ x02\x00@=\xaa\xaa\x04\x80\x02\x007F\xaa\xaa\x04\x80\x02\x00\!\xaa\xaa\x04\x80\x02\x00=@\xaa\xaa\ x04\x80\x02\x00=@\xaa\xaa\x04\x80\x02\x00i\x14\xaa\xaa\x04\x80\x02\x00] \xaa\xaa\x04\x80\x02\x00p\r \xaa\xaa\x04\x80\x02\x00\x80\xfd\xaa\xaa

我正在使用 python 3.5。此代码似乎适用于旧版本。

这是类似解析器代码的链接,它可能与以前版本的 Python 一起使用: 解析器代码链接

这是有关如何从设备 RAW 波形值(16 位)发送数据的说明的链接

该数据值由两个字节组成,代表单个原始波形样本。它的值是一个有符号的 16 位整数,范围从 -32768 到 32767。Value 的第一个字节表示二进制补码值的高位,而第二个字节表示低位。要重建完整的原始波形值,只需将第一个字节左移 8 位,然后与第二个字节按位或:

short raw = (Value[0]<<8) | Value[2];
Run Code Online (Sandbox Code Playgroud)

其中 Value[0] 是高位字节,Value 1是低位字节。

在位操作不方便的系统或语言中,可以用以下算术运算代替:

raw = Value[0]*256 + Value[1];
if( raw >= 32768 ) raw = raw - 65536; …
Run Code Online (Sandbox Code Playgroud)

python parsing struct python-3.x

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

无法解决ImportError:没有名为请求的模块

我读过这个问题

1)我安装了点子并执行

 pip install requests
Run Code Online (Sandbox Code Playgroud)

并得到

Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python2.7/dist-packages/requests-2.9.1-py2.7.egg
Cleaning up...
Run Code Online (Sandbox Code Playgroud)

2)我启动了python2 shell:

>>> from urllib.request import urlopen
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named request
Run Code Online (Sandbox Code Playgroud)

为什么我仍在捕获此异常?我做错了什么?

python pip python-2.7 python-3.x

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

导入错误:无法导入名称连接

我想在我的 django 应用程序中包含全文搜索。我为此使用 whoosh-haystack。当我在已安装的应用程序中包含 whoosh 和 haystack 并执行命令./manage.py时,出现导入错误。任何人都可以解决这个问题。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'whoosh',
    'haystack',
    'galleryApp',
    'galleryAdmin',
]
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 327, in execute
    django.setup()
  File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 115, in populate
    app_config.ready()
  File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/apps.py", line 22, in ready
    self.module.autodiscover()
  File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/__init__.py", line 26, in autodiscover
    autodiscover_modules('admin', register_to=site) …
Run Code Online (Sandbox Code Playgroud)

django whoosh django-haystack

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

为什么使用此代码可以生成随机密码?

这里有一个用于生成密码的代码段,我有2个关于此的问题,请问你能分享一下如何理解?

  1. urandom(6),来自urandom的帮助说,返回适合加密使用的n个随机字节,也就是说,它会返回6个字节,它是6个ASCII吗?

  2. ord(c) ,获取上面的字节的十进制基数,为什么这里转移到十进制基数?

帮助urandom:

def urandom(n): # real signature unknown; restored from __doc__
    """
    urandom(n) -> str

    Return n random bytes suitable for cryptographic use.
    """
    return ""
Run Code Online (Sandbox Code Playgroud)

Python脚本:

from os import urandom
letters = "ABCDEFGHJKLMNPRSTUVWXYZ"
password = "".join(letters[ord(c) % len(letters)] for c in urandom(6))
Run Code Online (Sandbox Code Playgroud)

python random passwords cryptography

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

Python在一个列表中查找不在另一列表中的元素的索引

list_1 = ["a", "b", "c", "d", "e"]
list_2 = ["a", "c", "d"] 
Run Code Online (Sandbox Code Playgroud)

我希望其中的元素索引list_1不在中list_2。我希望在这里

[1, 4]
Run Code Online (Sandbox Code Playgroud)

就我而言,list_2是list_1所有元素的唯一子集。没有使用显式循环的更好方法吗?

python list

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

当键是字符串而值是列表时,如何填充 python 字典?

I need to create a dictionary as shown below:

d = {'a': [2, 3, 4], 'b': [3, 4, 6], 'c': [2, 5, 9]}
Run Code Online (Sandbox Code Playgroud)

I have keys in the form of a list

keys = ['a', 'b', 'c'] 
Run Code Online (Sandbox Code Playgroud)

and values are present as separate lists

values = [[2, 3, 2], [3, 4, 5], [4, 6, 9]]. 
Run Code Online (Sandbox Code Playgroud)

I've tried using

d(zip(keys, values))

but it returns a dictionary as

{'a': [2, 3, 2], 'b': [3, 4, 5], 'c': [4, 6, 9]}

Is there …

python zip dictionary key list

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

Python 两个列表映射自定义

我有一个对象 ID 的映射:

mapping = {'id-1':'id-10', 'id-2':'id-14', 'id-3':'id-19'}
Run Code Online (Sandbox Code Playgroud)

还有两个包含对象的列表,id是对象的一个属性,比如object_id1.id = 'id-1'。

list1 = [object_id1, object_id3, object_id4, object_id5]
list2 = [object_id19, object_id11, object_id14, object_id10]
Run Code Online (Sandbox Code Playgroud)

我想要一个列表,其中包含一组中的那些相关对象。如

output = [(object_id1, object_id10), (object_id2, object_id14),(object_id3, object_id19)]
Run Code Online (Sandbox Code Playgroud)

这可以在一个 for 循环中完成吗?

python

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

输入具有多个键值类型的 Dit

我有一个 python 函数,它返回具有以下结构的字典

{
   (int, int): {string: {string: int, string: float}}
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用类型提示来指定它。所以,这些位很清楚:

Dict[Tuple[int, int], Dict[str, Dict[str, # what comes here]]
Run Code Online (Sandbox Code Playgroud)

但是,内部字典具有两个键的int和值类型。float我不知道如何注释

python typing type-hinting python-3.x

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

在不改变第一个列表的顺序的情况下找到两个列表的公共元素的最快方法

我有两个清单,

 l1 = [1,4,3,2,5]
 l2 = [4,3,2,10]
Run Code Online (Sandbox Code Playgroud)

现在我想找到列表之间的公共元素,所以我使用以下代码,

list(set(l1).intersection(set(l2)))
>> [2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

但它改变了 的顺序l1,我不想改变顺序所以结果应该是,

>> [4, 3, 2]
Run Code Online (Sandbox Code Playgroud)

寻找在不改变顺序的情况下执行此操作的最快方法?

python dictionary list-comprehension list python-3.x

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