V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  oIMOo  ›  全部回复第 87 页 / 共 162 页
回复总数  3233
1 ... 83  84  85  86  87  88  89  90  91  92 ... 162  
我很好奇的一点是,独立应用是个全局的(吧)。
那这些脚本也是全局在跑么?
2020-02-07 20:10:55 +08:00
回复了 iyg429 创建的主题 问与答 75 度酒精怎么用?
好像真的有人喝了……
社区还是警察叔叔发现了,让他坐救护车去医院洗胃……
微博看到的,是个视频
2020-02-07 20:06:00 +08:00
回复了 szxczyc 创建的主题 互联网 2020 年了选什么靠谱的同步盘
常年 Dropbox……
可能不适用于绝大多数,飘走……
2020-02-07 18:00:39 +08:00
回复了 loveToMy1 创建的主题 微信 微信制作头像
制作微信头像*
2020-02-07 16:42:33 +08:00
回复了 oIMOo 创建的主题 Python Python 如何获取终端实时输出
感谢所有朋友的帮助,问题已解决,原因在 append 中。
@wuwukai007 #1 @Cooky #2 @CallMeReznov #3 @fzinfz #6 @muzuiget #7 @mxalbert1996 #9 @leiz #12 @lxy42 #14 @noclin #26

@omph #8
感谢,一直在研究 subprocess,我也看一下 Pexpect

@chibupang #18
socket 不太适合我这个场景( A[dot]py 在实际中不能变更),但是也非常感谢!

@Death #4
pwntools 当年学安全的时候用过,现在全都忘光了哈哈哈,我再去捡起来。
2020-02-07 16:28:12 +08:00
回复了 oIMOo 创建的主题 Python Python 如何获取终端实时输出
@noclin #27
我电脑有毒,依然不行…… 为了找到哪里阻塞,我试了一个只有四行的版本:

import subprocess
p = subprocess.Popen(['python', './A[dot]py'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, universal_newlines=True, bufsize=1)
c = p.stdout.read(1)
print(c, end='')

然而还是不行,我就开始检查环境之旅…… 发现是 python 的问题……
目前已解决,我写在 append 里面去。
2020-02-07 00:47:04 +08:00
回复了 imn1 创建的主题 微信 问个问题,无法发起视频聊天
引申话题:
哪些国家 /地区地区禁止微信视频?
- 阿联酋 (迪拜、阿布扎比实测)
任何术业不专攻的应用,虽然说不上辣不辣鸡,但是我个人尽量不用,我也只能做到这样子。

微信和支付宝没办法,就尽量减少它们对我的影响。
其它可以不用的例子比如 Outlook,又做邮箱、又做日历,远离之。
我彻底的关闭了支付宝的推送。
还款这些,一个是有每个银行的短信,还有各大银行的微信公众号,另外银联云闪付也可以试试。
2020-02-06 23:27:30 +08:00
回复了 oIMOo 创建的主题 Python Python 如何获取终端实时输出
@chibupang #23
对的,但是你看我 append 的代码,我抓不到这个链接……
应该说我抓不到 所有 仍在运行的输出……
2020-02-06 23:09:44 +08:00
回复了 oIMOo 创建的主题 Python Python 如何获取终端实时输出
@chibupang #21
访问一个 API: 需要通过 API 给出的链接 -> 登陆 -> 获取 PIN -> 在终端里输入。
每次(每个 session )都会生成新链接,然后重新获取 PIN。

中间部分,登陆 + 获取 PIN,我是没问题的。
然而怎么拿到链接卡住了……
简化下来就是主题里 A.py 的场景。
2020-02-06 22:51:50 +08:00
回复了 oIMOo 创建的主题 Python Python 如何获取终端实时输出
@chibupang #18
这个是最初的办法,我最最开始用的 tee 命令。
后来经过提示,发现了 #5 的临时文件方法。

不过如果有不需要提三个文件的办法,那就最好了。
2020-02-06 22:16:39 +08:00
回复了 oIMOo 创建的主题 Python Python 如何获取终端实时输出
@lxy42 #14

根据错误提示,我也感觉是这个原因。
但是我的 input 的参数,需要根据 A 中 input 语句来进行判断。
比如说 x value 我给它 666, 说 y value 我给它 888.

这么一来,好像就不能用 communite,而是单独用 read 和 write。
但是呢…… 就卡住了- -

---

我把 input 改成 print(提示) 和 input() 试试……
2020-02-06 22:13:57 +08:00
回复了 oIMOo 创建的主题 Python Python 如何获取终端实时输出
@omph #8
感谢,第一次看到这个包~
不过以下代码,什么都没有发生,哭……

cmd = "python ./tmp.py"
process = pexpect.spawn(cmd, logfile=sys.stdout)
process.logfile_read = sys.stdout
2020-02-06 21:57:44 +08:00
回复了 oIMOo 创建的主题 Python Python 如何获取终端实时输出
@mxalbert1996 #9
我去读了下文档 docs[dot]python[dot]org[slash]2[slash]library[slash]subprocess[dot]html
并且尝试了一下,如果把带注释的 read 行替换成 communicate(timeout=1.0), 会直接因为 A 文件的 input 报错
```
x value: Traceback (most recent call last):
File "./A[dot]py", line 2, in <module>
x = input("x value: ")
EOFError: EOF when reading a line
2020-02-06 21:41:39 +08:00
回复了 oIMOo 创建的主题 Python Python 如何获取终端实时输出
@mxalbert1996 #9
感谢回复,我暂时没用到 communicate,但是试过 wait。
我的代码在 #10.
卡在了 read 那一行……
2020-02-06 21:40:40 +08:00
回复了 oIMOo 创建的主题 Python Python 如何获取终端实时输出
@Cooky #2
@CallMeReznov #3
@muzuiget #7

https://www.heypasteit.com/clip/0IUD26

上面连接是代码,很尴尬的卡在了 read 那一行(带注释)。
如果去掉这一行,A 就可以顺利接受发过去的 888,并结束运行。


@fzinfz #6
我看同一个帖子,带 Popen 里添加 bufsize=1 看起来是一个效果,我就加上了。
不过目前好像不是这个的原因- -
2020-02-06 20:20:59 +08:00
回复了 oIMOo 创建的主题 Python Python 如何获取终端实时输出
@Cooky #2 @CallMeReznov #3

output = subprocess.Popen(['python', './A.py'], stdout=subprocess.PIPE ).communicate()[0]
print(output)
我搜到大部分都是这个,然而第一行就阻塞了- -

来源于 https://stackoverflow.com/questions/4408377/how-can-i-get-terminal-output-in-python

用一个人发了另一种办法,写到临时文件,确实比 tee 好一点- -
1 ... 83  84  85  86  87  88  89  90  91  92 ... 162  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3104 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 14:23 · PVG 22:23 · LAX 06:23 · JFK 09:23
Developed with CodeLauncher
♥ Do have faith in what you're doing.