python获取控制台输出内容方法
之前一直想获取控制台输出的内容 由于内容输出是由模块输出的 并非在cmd输入命令的 导致我不知道怎么获取 用了popen 百度了一大圈 都没有合适的解决方法 今天想了一下 popen是获取控制台命令的 我直接os.popen(start 文件名)这样行不行呢? 结果不行 还弹出控制台 于是 我就想到了我是有环境变量的 我直接 os.popen(python 文件名.py)呢? 结果 没毛病!
获取了 但是输出的中文是乱码
用encode也不行 后来干脆直接去掉 python 直接 os.popen(文件名.py)发现一样可以获取 函数输出的也可以!就像moviepy模块处理出来的信息,都可以获取!因为是英文所以没有乱码!而且是实时的获取!
ok!正常获取! 而且 也会输出进度条!
然后我就在想 那么我不可能一直绑着python吧 于是 我把py文件打包exe
(这里没有去用上图的moviepy模块 因为打包会报错 模块的问题 需要改模块文件 就随便写了个print)
然后os.popen(1.py)改成os.popen(1.exe)成功获取!而且还不会出现乱码!中文一样可以打印!
最后我用了Pysimple gui 写了个界面 可是 很卡 但是的确可以获取到 还有一点问题就是 他需要等待几秒才会执行程序 就好比 你直接打开py文件或者python打包的程序一样 毕竟python是解释型语言嘛