小编pau*_*aul的帖子

在Context Manager - Python期间发生捕获异常

可能重复:
使用带有try-except块的python"with"语句

我正在用openPython打开一个文件.我将文件处理封装在一个with语句中:

with open(path, 'r') as f:
    # do something with f
    # this part might throw an exception
Run Code Online (Sandbox Code Playgroud)

这样我就确定我的文件已关闭,即使抛出了异常.

但是,我想处理打开文件失败的情况(OSError抛出一个).一种方法是将整个with块放在一个try:.只要文件处理代码不引发OSError,这就可以工作.

它可能看起来像:

try:
   with open(path, 'rb') as f:
except:
   #error handling
       # Do something with the file
Run Code Online (Sandbox Code Playgroud)

这当然不起作用,真的很难看.这样做有一种聪明的方法吗?

谢谢

PS:我正在使用python 3.3

python contextmanager python-3.x

3
推荐指数
1
解决办法
1102
查看次数

Pthread在创建后立即运行一个线程

我有一个C程序,我使用pthread.

我希望新创建的线程在创建后立即运行.

这背后的原因是我的线程有初始化代码来设置信号处理程序,我必须确保处理程序准备就绪,然后我的主线程发送一些信号.

我试着做pthread_yield只是我后pthread_create,但没有成功.

我怀疑它有所不同,但我在x86_64上运行Linux 3.6.

谢谢

c linux multithreading pthreads

1
推荐指数
2
解决办法
2872
查看次数