你好,我有两个python文件(命名管道)
py
import win32pipe, win32file
p = win32pipe.CreateNamedPipe(r'\\.\pipe\test_pipe',
win32pipe.PIPE_ACCESS_DUPLEX,
win32pipe.PIPE_TYPE_MESSAGE | win32pipe.PIPE_WAIT,
1, 65536, 65536,300,None)
win32pipe.ConnectNamedPipe(p, None)
data = "Hello Pipe"
win32file.WriteFile(p, data)
该管道创建一个命名管道“ test_pipe”,并将数据写入该管道。
b.py
import win32pipe, win32file
import win32file
fileHandle = win32file.CreateFile("\\\\.\\pipe\\test_pipe",
win32file.GENERIC_READ | win32file.GENERIC_WRITE,
0, None,
win32file.OPEN_EXISTING,
0, None)
data = win32file.ReadFile(fileHandle, 4096)
print data
我能够毫无问题地获取数据。但是我得到的数据是这种形式的(我已经用双引号括住了输出)
"<0, Hello Pipe>"
我无法弄清楚为什么所有这些变量都被打印(<,0,>)在a.py或b.py中的问题在哪里以及如何解决这个问题。
这就是win32file.ReadFile()
回报。它返回结果和读取数据的元组。您应该验证结果为0(或其他适用的值),然后读取数据。
data = win32file.ReadFile(fileHandle, 4096)
if data[0] == 0:
print data[1]
else:
print 'ERROR', data[0]
问题内容: 考虑以下代码片段: 我期望创建一个具有以下两个功能的字典: 但看起来生成的两个函数完全相同: 我真的不明白为什么。你有什么建议吗 ? 问题答案: 你需要为创建的每个函数绑定。一种方法是将其作为具有默认值的参数传递: 现在,函数内部的使用了参数,即使它具有相同的名称,并且在创建函数时会评估该参数的默认值。为了帮助你看到以下内容: 请记住默认值是如何工作的,例如可变对象(如列表和字典)的工
问题内容: OpenCV python包装器中是否有任何功能与OpenCV 2中Mat的convertTo方法具有相同的功能? 我基本上想在python中调用此函数 哪里是灰度图像。 我已经通过将dst参数保持为CV_32FC1类型来使用cv.ConvertScale,但是我正在尝试使python代码尽可能与cv2保持一致。有什么线索吗? 问题答案: 您可以为此简单地使用Numpy函数。 例如:
问题内容: 现在,我将elixir与mysql数据库一起使用,并将redispy与redis一起使用,并在所有位置选择UTF-8。我想用中文写一些数据,但是我得到的是这样的: 在我将该字典存储到redis并通过redispy将其取出后,它变为: 我知道如果我加入之前,并打印它会守我,但有一个功能或另一个解决这个问题? 问题答案: 后者看起来像json,请先尝试对其进行解码:
我现在需要用python编写一个接收器程序,我想知道我做错了什么。在java中,我有(显然是代码片段): 它返回的值为: 如果我打印出数组字节文件大小,我会得到以下值: 这会返回: 我在python端接收这两个值(通过数据报发送给python接收器)。如何组合它们或将它们转换为值27762,就像Java中的BigInteger返回值一样?有点迷茫了。 任何想法都会很棒! 提前感谢!
断言是一种完整性检查,您可以在完成程序测试后打开或关闭。 想到断言的最简单方法是将它比作一个raise-if语句(或者更准确,即使是if-if-not语句)。 测试表达式,如果结果为false,则引发异常。 断言由assert语句执行,这是Python的最新关键字,在1.5版中引入。 程序员经常在函数的开头放置断言以检查有效输入,并在函数调用之后检查有效输出。 The assert 语句 遇到as
问题内容: 如果路径不存在,我正在尝试创建目录,但是!(不是)运算符不起作用。我不确定如何在Python中取反…执行此操作的正确方法是什么? 问题答案: Python中的求反运算符为。因此,只需将替换为即可。 对于您的示例,请执行以下操作: 对于您的特定示例(如Neil在评论中所述),您不必使用模块,只需使用即可获得所需的结果,并添加了异常处理优势。 例: