相关疑难解决方法(0)

暂时重定向stdout/stderr

是否可以在Python中暂时重定向stdout/stderr(即在方法的持续时间内)?

编辑:

当前解决方案(我最初记得但后来忘记了)的问题在于它们没有重定向 ; 相反,他们只是完整地替换了流.因此,如果一个方法有一个本地副本,一个变量的任何原因(例如,由于流被作为参数传递的东西),它不会工作.

有解决方案吗

python redirect stdout stderr

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

如何在python中使用win32 API?

如何在Python中使用win32 API?
最好和最简单的方法是什么?
你能举一些例子吗?

python api winapi

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

Python服务器"通常只允许使用每个套接字地址"

我正在尝试在python中创建一个非常基本的服务器来监听端口,当客户端尝试连接时创建TCP连接,接收数据,发回一些东西,然后再次监听(并无限期地重复该过程).这是我到目前为止:

from socket import *

serverName = "localhost"
serverPort = 4444
BUFFER_SIZE = 1024

s = socket(AF_INET, SOCK_STREAM)
s.bind((serverName, serverPort))
s.listen(1)

print "Server is ready to receive data..."

while 1:
        newConnection, client = s.accept()
        msg = newConnection.recv(BUFFER_SIZE)

        print msg

        newConnection.send("hello world")
        newConnection.close()
Run Code Online (Sandbox Code Playgroud)

有时这似乎工作得很好(如果我将浏览器指向"localhost:4444",服务器会打印出HTTP GET请求,并且网页会打印文本"hello world").但是当我在最后几分钟关闭它后尝试启动服务器时,偶尔会收到以下错误消息:

Traceback (most recent call last):
  File "path\server.py", line 8, in <module>
    s.bind((serverName, serverPort))
  File "C:\Python27\lib\socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 10048] Only one usage of each socket address (protocol/network address/port) is normally …
Run Code Online (Sandbox Code Playgroud)

python sockets connection webserver

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

在Windows上的os.pipe上读取非阻塞

这个问题 - 如何从os.pipe()读取而不被阻止?- 显示如何检查os.pipeLinux 是否有任何数据的解决方案,为此您需要将管道置于非阻塞模式:

import os, fcntl
fcntl.fcntl(thePipe, fcntl.F_SETFL, os.O_NONBLOCK)
Run Code Online (Sandbox Code Playgroud)

在Windows上我们有这个:

ImportError: No module named fcntl
Run Code Online (Sandbox Code Playgroud)

但是os.pipe有:

>>> os.pipe()
(3, 4)
Run Code Online (Sandbox Code Playgroud)

那么,是否可以进行非阻塞读取或窥视os.pipeWindows上的内容?

python windows pipe

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

标签 统计

python ×4

api ×1

connection ×1

pipe ×1

redirect ×1

sockets ×1

stderr ×1

stdout ×1

webserver ×1

winapi ×1

windows ×1