相关疑难解决方法(0)

pySerial write()不会接受我的字符串

使用Python 3.3和pySerial进行串行通信.

我正在尝试向COM PORT写一个命令,但write方法不会占用我的字符串.(大多数代码来自这里使用pySerial包的完整示例

这是怎么回事?

import time
import serial


ser = serial.Serial(
    port='\\\\.\\COM4',
    baudrate=115200,
    parity=serial.PARITY_ODD,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS
)
if ser.isOpen():
    ser.close()
ser.open()
ser.isOpen()

ser.write("%01#RDD0010000107**\r")
out = ''
# let's wait one second before reading output (let's give device time to answer)
time.sleep(1)
while ser.inWaiting() > 0:
    out += ser.read(40)

if out != '':
    print(">>" + out)


ser.close()
Run Code Online (Sandbox Code Playgroud)

错误发生在ser.write("%01#RDD0010000107**\r")中,它获取Traceback就像这个data = to_bytes(data)b.append(item)TypeError:需要一个整数.

python pyserial

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

字符串文字前面的b有什么作用?

$binary = b'Binary string';
Run Code Online (Sandbox Code Playgroud)

创建一个字符串作为binary 有什么后果?

我在文档中找不到任何关于它的提示.通过language_scanner查看这个小小的好奇心.

php string syntax

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

UTF-8连续字节

我试图找出UTF-8编码中的"延续字节"(为了好奇).

维基百科在UTF-8文章中引入了这个术语,但没有对其进行定义

Google搜索也没有返回有用的信息.我即将跳入官方规范,但最好首先阅读高级摘要.

unicode utf-8

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

在python opencv中通过网络发送实时视频帧

我正在尝试将我用相机捕获的实时视频帧发送到服务器并处理它们.我是用于图像处理的opencv和用于该语言的python.这是我的代码

client_cv.py

import cv2
import numpy as np
import socket
import sys
import pickle
cap=cv2.VideoCapture(0)
clientsocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
clientsocket.connect(('localhost',8089))
while True:
    ret,frame=cap.read()
    print sys.getsizeof(frame)
    print frame
    clientsocket.send(pickle.dumps(frame))
Run Code Online (Sandbox Code Playgroud)

server_cv.py

import socket
import sys
import cv2
import pickle
import numpy as np
HOST=''
PORT=8089

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print 'Socket created'

s.bind((HOST,PORT))
print 'Socket bind complete'
s.listen(10)
print 'Socket now listening'

conn,addr=s.accept()

while True:
    data=conn.recv(80)
    print sys.getsizeof(data)
    frame=pickle.loads(data)
    print frame
    cv2.imshow('frame',frame)
Run Code Online (Sandbox Code Playgroud)

这段代码给了我文件结束错误,这是合乎逻辑的,因为数据总是不停地进入服务器而pickle不知道何时完成.我在互联网上的搜索让我使用泡菜,但它到目前为止还没有用.

注意:我设置conn.recv为80,因为这是我说的时候得到的数字print sys.getsizeof(frame).

python opencv numpy

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

无法从文件python加载RSA公钥和私钥

我在python中使用rsa模块时遇到问题,我需要从文件中加载两个公钥和私钥,这就是我打开私钥文件的方法,例如:

private_key_file = "privKey.pem"
keydata = open(private_key_file).read()
privKey = rsa.PrivateKey.load_pkcs1(keydata, 'PEM')
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:ValueError:没有PEM开始标记"b'----- BEGIN RSA私钥-----'"找到

虽然文件内容以"----- BEGIN RSA PRIVATE KEY -----"开头,但一个注意事项是该文件不包含前导字符b'我不知道它来自何处或是否与之相关这个特殊的问题!

任何帮助,将不胜感激

python encryption openssl cryptography rsa

6
推荐指数
0
解决办法
2153
查看次数

Python 3 - TypeError:需要类似字节的对象,而不是'str'

我正在研究Udacity的一个教训,并且在尝试查看此站点的结果是返回true还是false时遇到了一些问题.我使用下面的代码获得TypeError.

   from urllib.request import urlopen
    #check text for curse words  
    def check_profanity():
        f = urlopen("http://www.wdylike.appspot.com/?q=shit")
        output = f.read()
        f.close()
        print(output)
        if "b'true'" in output:
            print("There is a profane word in the document")

    check_profanity()
Run Code Online (Sandbox Code Playgroud)

输出打印b'true',我不确定'b'来自哪里.

urllib unicode-string python-3.x

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

如何解析二进制字符串到dict?

我有 - flask服务.有时我可以jsonhttp标题处获得没有分数的消息.在这种情况下,我正在尝试解析来自的消息request.data.但是字符串来自request.data解析真的很难.这是一个二进制字符串,如下所示:

b'{\n    "begindate": "2016-11-22", \n    "enddate": "2016-11-22", \n    "guids": ["6593062E-9030-B2BC-E63A-25FBB4723ECC", \n              "5A9F8478-6673-428A-8E90-3AC4CD764543", \n              "D8243BA1-0847-48BE-9619-336CB3B3C70C"]\n}'
Run Code Online (Sandbox Code Playgroud)

当我尝试使用时json.loads(),我收到此错误:

TypeError: the JSON object must be str, not 'bytes'
Run Code Online (Sandbox Code Playgroud)

转换为string(str())的功能也不能很好地工作:

'b\'{\\n    "begindate": "2016-11-22", \\n    "enddate": "2016-11-22", \\n    "guids": ["6593062E-9030-B2BC-E63A-25FBB4723ECC", \\n              "5A9F8478-6673-428A-8E90-3AC4CD764543", \\n              "D8243BA1-0847-48BE-9619-336CB3B3C70C"]\\n}\''
Run Code Online (Sandbox Code Playgroud)

我用Python 3.我该怎么办才能解析request.data

python json python-3.x

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

了解从Arduino收到的字符

我有一个Arduino板通过串行端口发送数据,还有一条Python代码读取该数据。Arduino开发板只是发送它从TMP36传感器读取的温度,当我使用Arduino IDE随附的端口监视器检查端口时,我看到以下内容:

20.3
20.3
20.2
20.2
...
Run Code Online (Sandbox Code Playgroud)

这是完全正确的。现在,当我使用Python读取串行端口时,我得到以下信息:

b'20.32\r\n'
b'20.32\r\n'
b'20.32\r\n'
b'20.80\r\n'
...
Run Code Online (Sandbox Code Playgroud)

那件事是做什么的?如何处理字符串,以便正确显示数字?

这是我正在使用的代码:

import serial

ser = serial.Serial('/dev/ttyACM0', 9600)
while True:
   message = ser.readline()
   print(message)
Run Code Online (Sandbox Code Playgroud)

道歉,如果这是一个愚蠢的问题,但我是Arduino,Python和串行编程的新手:)

python arduino pyserial

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

在 python 中使用 difflib.diff_bytes 比较两个文件

假设我想将文件 a 和文件 b 与该difflib.diff_bytes函数进行比较,我该怎么做?

谢谢

python file difflib python-3.x

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

Flask 单元测试并且不理解我对“TypeError:需要一个类似字节的对象,而不是‘str’”的修复

我目前正在构建一个小型 Web 应用程序来提高我的技能,作为其中的一部分,我正在尝试全面采用最佳实践、测试、CI、架构良好、干净的代码,所有这些。在过去的几个会议中,我一直在努力测试我的根路由,而不是通过路由函数返回一个字符串,我正在渲染一个模板,我已经让它工作了,但我没有理解它为什么起作用,这让我很困扰。

主要是使用 b,在我的断言字符串之前,我认为这与我渲染的不是字符串,而是 html 表示的事实有关,类似于 return 和 print 之间的区别,但我是朦胧,很感激有人来教我。

我要问的行是 test_homepage_response 函数的第 4 行。以及它是如何运作的。特别是关于我收到的这个错误:

返回的错误:

ERROR: test_home_welcome_return (tests.home_page_tests.HomePageTestClass)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/xibalba/code/reel/tests/home_page_tests.py", line 31, in test_home_welcome_return
    self.assertIn(u"Welcome to Reel!", response.data)
  File "/usr/local/lib/python3.6/unittest/case.py", line 1077, in assertIn
    if member not in container:
TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)

我对回家路线的测试:


# Test Suite
import unittest
from reel import app
from reel.views import home_welcome


class HomePageTesttClass(unittest.TestCase):

    @classmethod
    def setupClass(cls):
        pass

    @classmethod
    def tearDownClass(cls):
        pass

    def …
Run Code Online (Sandbox Code Playgroud)

python tdd unit-testing flask

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