作者Risha5566 (理沙)
看板Python
标题[问题] 想询问有没有方法在指定行印出
时间Wed Feb 24 00:48:05 2021
大家安安
我的问题有点奇怪,请见谅QQ
我的问题大概是这样
因为我有用Threading
每个job都会印出
print(f"({T}) Connecting {id1} ... ", end="\r")
print(f"({T}) Searching {id1} ... ", end="\r")
print(f"({T}) Downloading {id1} ... ", end="\r")
但是因为我有Threading
所以这些会挤在同一行
如果换行的话会变很乱
(7) Searching ANN22860-RA ...
(6) Searching ANN22863-RA ...
(15) Downloading ANN22865-RA ...
(14) Downloading ANN22859-RA ...
(2) Downloading ANN22873-RA ...
(19) Downloading ANN24587-RA ...
(13) Searching ANN22875-RA ...
(17) Downloading ANN22871-RA ...
(3) Downloading ANN22861-RA ...
(16) Downloading ANN22866-RA ...
像这样
而且每个Thread的执行时间不太一样
请问有没有办法可以让
第一个Thread就印在terminal上的第一行
第二个Thread就印在terminal上的第二行
希望是可以印出
terminal上第一行 (1) Connecting {id1} ...
terminal上第二行 (2) Searching {id2} ...
. (3) Connecting {id3} ...
. (4) Downloading {id4} ...
. (5) Finish
如果看不懂我的问题的话
我会再努力解释的!!
先谢谢大家了!!
执行环境:
python 3.6 upup
linux
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 106.1.225.183 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1614098887.A.17C.html
※ 编辑: Risha5566 (106.1.225.183 台湾), 02/24/2021 00:53:12
1F:→ AndCycle: 你只能自己先把想印的东西用别的东西接起来排好输出 02/24 03:33
2F:→ AndCycle: 要有一个输出专用的thread, 或是反过来去定时读状态输出 02/24 03:34
3F:推 ckc1ark: curses比较像是你要的 一样要有输出专用的daemon thread 02/24 04:08
4F:推 remia81: pbar = tqdm(T_job_input_list ,desc=f"" , bar_format= 02/24 04:17
5F:→ remia81: "{desc}", position=T, ncols=80, miniters=1) 02/24 04:17
6F:→ remia81: for j in pbar: 02/24 04:17
7F:→ remia81: id1 = connect(j) 02/24 04:17
8F:→ remia81: pbar.set_description(f"({T}) Connecting {id1}") 02/24 04:17
9F:→ remia81: search(id1, j) 02/24 04:17
10F:→ remia81: pbar.set_description(f"({T}) Searching {id1}) 02/24 04:17
11F:推 lycantrope: 独立thread用sys.stdout.write输出,用lock让输出排序 02/25 14:29
12F:→ leolarrel: 我也推荐用curses处理 02/25 16:46
13F:→ Risha5566: 感谢~~ 03/03 00:12