小编Dae*_*hos的帖子

如何正确处理SIGINT以关闭文件/连接

我想在脚本中实现适当的SIGINT处理,该脚本将打开多个文件和一个数据库连接。如果脚本是CTRL + C或其他方式中断,则应将其关闭。

以前我用过 KeyboardInterrupt异常捕获CTRL + C,在那里检查了是否定义了文件/连接,如果如此,则关闭它们,然后退出。

这是否真的是pythonic方法,还是建议使用信号处理程序?例如

import signal, sys, time

def handler(signum, frame):
    print("..kthxbye")
    sys.exit(1)

def main():
    signal.signal(signal.SIGINT, handler)
    i = 0
    while True:
        print(i)
        i += 1
        time.sleep(1)

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎比较干净,但我不知道如何将文件名或数据库连接传递给处理程序。

python signals exit interrupt-handling

4
推荐指数
1
解决办法
3636
查看次数

python按包含列表的长度排序对象列表

我有一个包含两个列表的类,一个是int和一个字符串......看起来像这样

class Something:
    num = 0

    def __init__(self, clu, pro)
        self.clu = clu
        self.rep = []
        self.rep_dis = []
        self.pro = ""
Run Code Online (Sandbox Code Playgroud)

现在在我的主要内容中,我保留了一个Something对象列表.

something_list = []
tmp_something = Something("this", "that")
tmp_something.rep.append("some")
tmp_something.rep_dis.append("thing")
something_list.append(tmp_something)
Run Code Online (Sandbox Code Playgroud)

如何按对象列表的长度对此列表进行排序rep

编辑:代码段格式

python sorting list object

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

标签 统计

python ×2

exit ×1

interrupt-handling ×1

list ×1

object ×1

signals ×1

sorting ×1