当前位置: 首页 > 面试题库 >

python中的createNamedPipe

曾云
2023-03-14
问题内容

你好,我有两个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在评论中所述),您不必使用模块,只需使用即可获得所需的结果,并添加了异常处理优势。 例: