网站首页 >> 每日新闻 >> 正文 提交收录

超时函数python源码(python 线程超时)

时间:2022年09月29日 05:09:25

本文目录一览:

python怎么用延时函数,python小白求求帮忙(哭)

用定时器做,1秒钟唤醒一次响应函数,不要用延时函数 sleep

# 定义时间显示

self.timer = QtCore.QTimer(self)

self.timer.timeout.connect(self.act_displayTM) #绑定响应函数

self.timer.setInterval(1000) #设置时间间隔

self.timer.start()

# 定时响应事件对应逻辑

def act_displayTM(self):

s_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

self.ui.label_Date.setText(s_time)

return

python如何设计一个函数,实现等待用户输入数字,超时则默认选择,

很简单,新建一个线程即可

import threading

def input_func( context ):

context[ 'data' ] = input( 'input:' )

context = { 'data' : 'default' }

t = threading.Thread( target = input_func ,args = ( context , ) )

t.start( )

t.join( 10 ) #等待10秒

print( context )

python的问题 subprocess.Popen

自从工作了就好久没发博客,还是出来冒个泡=。=

前段时间写的一个项目需要用python的subprocess.Popen大量调用某shell命令,运行到一定量级之后就会产生内存溢出,造成大量线程阻塞,然后就会造成([Errno 24] Too many open files)这个异常。

网上有人说是close_fds=True这个参数在python2.x默认没打开,这个参数可以关闭文件描述符,试了没有作用。

后来在国外某个人的帖子找到了和我类似的问题,解决办法就是执行后把stdin,stdout,stderr3个流进行清空即可。

结合网上的资料,写了一个可以自定义超时时间调用subprocess.Popen执行shell命令的函数(自定义超时为了避免某些shell卡死的情况),用这个函数去调用subprocess.Popen就不会产生上面这些问题了。

def timeout_command(command, timeout):

start = datetime.datetime.now()

process = subprocess.Popen(command, bufsize=10000, stdout=subprocess.PIPE, close_fds=True) while process.poll() is None:

time.sleep(0.1)

now = datetime.datetime.now() if (now - start).seconds timeout: try:

process.terminate() except Exception,e: return None

return None

out = process.communicate()[0] if process.stdin:

process.stdin.close() if process.stdout:

process.stdout.close() if process.stderr:

process.stderr.close() try:

process.kill() except OSError: pass

return out

python程序问题:urlopen()控制

使用try...except来对urlopen出错进行控制,通过socket模块的setdefaulttimeout函数来控制超时时间,python3.x示例代码如下:

import urllib.request

import socket

socket.setdefaulttimeout(10) #设置超时时间

#要下载的网页列表

urls = ['',

        '',

        '',

        '',

        '',

        '']

for url in urls:

    try:

        html = urllib.request.urlopen(url)

        #处理得到的网页

    except:

        #出错处理

python如何设计一个函数,实现等待用户输入数字,超时则默认选择?

很简单,新建一个线程即可

import threading

def input_func( context ):

context[ 'data' ] = input( 'input:' )

context = { 'data' : 'default' }

t = threading.Thread( target = input_func ,args = ( context , ) )

t.start( )

t.join( 10 )#等待10秒

print( context )

如何查看python源代码

众所周知,Python内建了许多函数模块,并且我们可能还会安装许多第三方模块等等。

下面以getpass为例查看其源代码。

1.help(getpass)

输入该命令找到file路径,并且可以查看其其提供的功能。

2.利用getpass.__file__查看位置

最后找到该文件,用记事本或其他编辑器打开即可。

3.PyCharm编辑器

在该类或 *** 上按住“ctr+鼠标左键”可以快速查看源代码。

4.dir(对象名)

该 *** 可以快速查看有哪些 *** 。

想要查看每个功能的解释,用help(type(对象名)) 

python学习网,大量的免费python视频教程,欢迎在线学习!