python程序部署--后台运行, threading与其他

python脚本的后台执行

一般而言, 在windows中执行python脚本, 需要打开命令行,然后执行
python target.py
要提高自动化程度, 可以:

  • 创建当前程序的快捷方式, 在属性-目标项的前端插入python
  • 更改默认打开方式为使用中的python.exe或在打开方式中选取

使用python打开程序时, 会绑定显示命令提示符窗口,参考这个解决:

  • 将python.exe替换成pythonw.exe, 程序就可以在Windows后台执行, 不显示命令提示符窗口;
  • 另一种方法是修改脚本的扩展名为".pyw",双击即可后台运行,不需要修改任何代码

ipython脚本的执行

以下内容选自ipython官方wiki:

%run -i foo.py 将在执行py文件后保留变量在当前ipython console, 会占用ipython程序
%bg _ip.magic('run -i foo.py') 程序将在后台运行, 同时你可以实时访问其中的变量,即使时在运行中

threading

threading的基本用法:

def func():
    # Do something here
threading.Thread(target=func).start()

threading与定时器结合示例

import threading
def producer_time(next_coroutine=None,max_iter=10, dt=2):
    counter = 0
    status = True
    while(True):
        t = time.time()
        if (not status) and t%dt<0.1:
#            next_coroutine.send('run') # 这里可以传进参数, 虽然这里没有必要; 这说明其仍有额外的自由度
            print(t)
            counter+=1
            status = True
        if (status and t%dt>=0.1):
            status = False #reset
        if counter>max_iter:
            break
threading.Thread(target=producer_time).start()
print('a')

一些观测到的特性:

  • Ctrl+C 不会终止threading中的程序
  • Ctrl+C 之后虽然控制台出现了In提示符, 但threading终止之前依然无法执行新的程序

在搜索threading用法的过程中, 发现了诸多可能有用的库,包括:

  • subprocess
  • signal
  • multiprocessing
  • ayncio
  • concurrent等

以及一些不错的网站/教程:

将在日后作进一步的探索

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值