Python论坛  - 讨论区

标题:[python-chinese] timeout的问题

2005年05月01日 星期日 18:07

. newbie learnpython at gmail.com
Sun May 1 18:07:37 HKT 2005

我在程序里用了Timothy O'Malley写的timeoutsocket.py的timeout功能,
在程序开头这样写:
import timeoutsocket
timeoutsocket.setDefaultSocketTimeout(2)

超时值设成了两秒。
超时后,程序就退出了

问题是,假如我是一个循环,超时后我想让循环继续,而不是退出,该怎么做?

这个问题类似于C里面exit和return一样,我想要的只是它return一个值给我,而不是exit(1),

该怎么解决?

多谢

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年05月01日 星期日 18:26

Qiangning Hong hongqn at gmail.com
Sun May 1 18:26:56 HKT 2005

google了一下,你说的是http://www.steffensiebert.de/soft/python/timeoutsocket.py吗?

timeoutsocket.py的docstring里有这样的描述:


The timeout applies to the socket functions that normally block on
execution:  read, write, connect, and accept.  If any of these 
operations exceeds the specified timeout, the exception Timeout
will be raised.


可以看出,超时时会抛出异常。你只需要用try...except...机制捕获这个异常进行处理就好了。

例如:

while keep_going:
try:
buf = sck.recv(10)
except timeoutsocket.Timeout:
print 'Timeout!'
else:
do_something(buf)


On 5/1/05, . newbie <learnpython at gmail.com> wrote:
> 
> 我在程序里用了Timothy O'Malley写的timeoutsocket.py的timeout功能,
> 在程序开头这样写:
> import timeoutsocket
> timeoutsocket.setDefaultSocketTimeout(2)
> 
> 超时值设成了两秒。
> 超时后,程序就退出了
> 
> 问题是,假如我是一个循环,超时后我想让循环继续,而不是退出,该怎么做?
> 
> 这个问题类似于C里面exit和return一样,我想要的只是它return一个值给我,而不是exit(1),
> 
> 该怎么解决?
> 
> 多谢
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
> 


-- 
Qiangning Hong
Get Firefox! <
http://www.spreadfirefox.com/?q=affiliates&id=67907&t=1>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050501/ff6d2270/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年05月01日 星期日 19:49

Xia Gao xiaogao at mails.tsinghua.edu.cn
Sun May 1 19:49:47 HKT 2005

大家好!

	我是Python的初学者,今天用PyQT遇到一个问题:当用“打开”对话框打开文件时,如果不是中文文件名,就可以打开;否则会出现以下异常:
Traceback (most recent call last):
  File "F:\Python\PyXEdit\QXEMainWindow.py", line 132, in fileOpen
    self.loadFile(filePath)
  File "F:\Python\PyXEdit\QXEMainWindow.py", line 158, in loadFile
    text = codecs.open(filePath.ascii().encode("mbcs"), "r", "mbcs").read().enco
de("utf-8")
  File "C:\Python24\lib\codecs.py", line 607, in open
    file = __builtin__.open(filename, mode, buffering)
IOError: [Errno 2] No such file or directory: 'F:/Python/PyXEdit/Test?????.txt'
问题应该是中文文件名不能处理。请大家帮忙想想办法,谢谢!

        致
礼!
 				

        Xia Gao
        xiaogao at mails.tsinghua.edu.cn
          2005-05-01

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号