情况是这样的:
写了一个 sh ,单独执行 sh 的时候, sh 的输出什么哒都是英文的。
前一段时间写的 python 来调用这个 sh ,并且 python 内部里面读取 sh 的 stdout ,这时却发现 sh 执行的输出都变成中文的了……这到底是个什么鬼!!!!!!!!!
求救啊~所有依赖于 python 的调用现在都因为 sh 输出语言的变化而汇报操作不成功……
1
evilic OP ```python
import subprocess res = subprocess.Popen(micmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) mi = res.stdout.readlines() mi = float((mi[0].strip())) ``` 读取输出的代码大概如上。 |
2
binux 2016-04-22 18:57:30 +08:00 1
1. 单独执行的时候你用的是 bash 而不是 sh ,我不相信有人日常用 sh 。而 Popen, shell=True 是 sh
2. 环境变量不同, Popen, shell=True 不会加载 .bashrc 中的环境变量 |
3
evilic OP 解决办法: kill 了启动的那个 py ,重新启了一个就好了……
|