V2EX todd7zhang 的所有回复 第 1 页 / 共 4 页
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    todd7zhang    全部回复第 1 页 / 共 4 页
回复总数  70
1  2  3  4  
代码乱了,哈哈。直接看 code 链接呢 https://paste.ofcode.org/iHEThFKxvkXHbhmMjAy4TB
反正都输出所有集合了,直接暴力回溯,只要回溯的时候注意去掉重复的就行

```python
def solution2(arr: list[int], lo:int, hi:int) -> list[list[int]]:
def valid(temp):
return all([
sum(temp) > hi,
all((sum(temp[:_i]) + sum(temp[_i+1:])) < hi for _i in range(len(temp))),
any((sum(temp[:_i]) + sum(temp[_i+1:])) <= hi - lo for _i in range(len(temp))),
])

def backtrack(i:int):
if i >= len(arr):
return

for j in range(i, len(arr)):
if j == i or arr[j] != arr[j-1]:
temp.append(arr[j])
if valid(temp):
res.append(temp[:])
backtrack(j+1)
temp.pop()

temp = []
res = []
arr.sort()
backtrack(0)
return res

# solution2([10, 20, 20, 30], 10, 45) -> [[10, 20, 20], [20, 30]]
```
2023-05-31 14:45:58 +08:00
回复了 f1ynnv2 创建的主题 Python 多进程使用 logging 把日志存储到不同文件的实践
@f1ynnv2 看完你的回复之后,我感觉你对 python 的 logger 理解有误。
每个 py 文件都应该有自己 logger, 每个 logger 不需要自己来输出到文件,你不需要也不应该从其他模块导入一个的 logger, 它最后都会把 log record propagate 到 root logger
你只要对 root logger 配置 handler 和 formatter 就行。
然后,我的代码是给每个子进程配置了他们 root logger ,file1.pyfile2.py 并没有额外指定日志输出文件。
2023-05-31 10:10:32 +08:00
回复了 f1ynnv2 创建的主题 Python 多进程使用 logging 把日志存储到不同文件的实践
我认为,日志滚动不应该让 python 来做,python 就直接 logging 到 stdout 。
外面用 supervisor 来守护,同时 supervisor 来收集日志到文件,最后由 logrotate 做每天的日志滚动。
2023-05-31 10:01:29 +08:00
回复了 f1ynnv2 创建的主题 Python 多进程使用 logging 把日志存储到不同文件的实践
2023-05-31 09:46:20 +08:00
回复了 f1ynnv2 创建的主题 Python 多进程使用 logging 把日志存储到不同文件的实践
```python
# example.py
import logging
import multiprocessing
import os

_logger = logging.getLogger(__name__)

def init_logging():
# create logger
root_logger = logging.getLogger()
root_logger.setLevel(logging.DEBUG)

# create file handler
log_file = 'my_log_{}.log'.format(os.getpid())
file_handler = logging.FileHandler(log_file)
file_handler.setLevel(logging.DEBUG)

# create formatter
formatter = logging.Formatter('%(asctime)s - %(process)d - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)

# add file handler to logger
root_logger.addHandler(file_handler)



def start():
init_logging()
from . import file1, file2
file1.say_hello()
file2.say_hello()


def main():
processes = []
for i in range(4):
p = multiprocessing.Process(target=start)
processes.append(p)
p.start()

for p in processes:
p.join()

if __name__ == '__main__':
main()


# file1.py
import logging
_logger = logging.getLogger(__name__)

def say_hello():
_logger.info("this is hello message from file1.py")


# file2.py
import logging
_logger = logging.getLogger(__name__)

def say_hello():
_logger.info("this is hello message from file2.py")

```
2023-05-31 09:42:02 +08:00
回复了 f1ynnv2 创建的主题 Python 多进程使用 logging 把日志存储到不同文件的实践
子进程启动的地方,先 init_logger(), 这里面只需要设置 root logger 的 file handler 。然后其他地方使用各自 py 文件下的 logger 啊
2021-12-15 13:56:08 +08:00
回复了 IurNusRay 创建的主题 Python sqlalchemy 事务中出错没有进行回滚?
看样子是我狭隘了,一直没了解过这个。这种情况下居然不支持回滚...
2021-09-14 11:49:26 +08:00
回复了 shiyuu 创建的主题 Python 求助线程进程问题, IPy 处理 IP 网段
如果你看下这个的实现 IP('192.168.1.12') in IP('192.168.1.0/24')
就会发现实际上执行和 '192.168.1.12' in ['192.168.1.0', '192.168.1.1', ..., '192.168.1.254', '192.168.1.255'] 没区别
那这个实际执行次数就是 10w * 400 * 255

所以你可以先处理 IP 段 每一行 变一个 set(str(i) for i in IP('192.168.1.0/24'))
然后再 '192.168.1.12' in set

实测 1000 * 400 : IP('192.168.1.12') in IP('192.168.1.0/24') 3.92s
1000* 400: '192.168.1.12' in set 18.1ms
2021-08-31 09:03:31 +08:00
回复了 admin7785 创建的主题 上海 2 号线沿线 求租房
自己往川沙找吧,看看有没有单间。
没动啊,既然严格要求 FIFO, 为啥去执行 SQL 的时候,还要开 ThreadPoolExecutor ?这种情况,从 sqlqueue 拿出来虽然是顺序的,但是感觉执行过去就可能乱序啊,毕竟 while 里面在不停的开 executor 。

我感觉都不用 POOL, 就一个 conn 不停的执行 sql 就好了?
with conn.cursor() as cr:
while not sqlqueue.empty():
cr.execute(sqlqueue.get())
直接 subprocess 调用 wkhtmltopdf ?
2021-08-13 16:28:46 +08:00
回复了 shenxj 创建的主题 程序员 求助,客户端访问数据库怎么指定端口号
python 的话,client socket 直接 bind(ip, specified_port)
2021-08-13 09:32:15 +08:00
回复了 codingbody 创建的主题 SSH 遇到一个有趣的 ssh 的问题
学到了
2021-07-30 15:44:36 +08:00
回复了 Phishion 创建的主题 Python 请问 Django 并发条件下,生成雪花 ID 为什么会重复?
差不多啦,uwsgi 启动的子进程的 pid 基本都是连续递增的,这边还有 worker & 0xff, 一台机器支持 256 个 worker 呢。
实际启动的时候就那么几个进程,没那么巧就重复了吧,哈哈。
2021-07-30 13:42:15 +08:00
回复了 Phishion 创建的主题 Python 请问 Django 并发条件下,生成雪花 ID 为什么会重复?
如果生产是多进程跑的话,应该是初始化 Generator(dc=0, worker=0)这个时候,所有进程的 10bit 的 node_id 都是一样的,然后就重复了。可以考虑 worker=os.getpid()
2021-07-19 11:44:04 +08:00
回复了 evilStart 创建的主题 Python Nodejs 之后, Python 在 Web 开发领域还有啥优势么?
太久没有用 node.js ,不知道 node_modules 这个文件夹还大不大?
2021-03-24 09:29:43 +08:00
回复了 going 创建的主题 Python Python 高性能小算法
老老实实遍历就完事,O(n)
1  2  3  4  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5563 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 33ms UTC 08:57 PVG 16:57 LAX 01:57 JFK 04:57
Do have faith in what you're doing.
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86