关于 Python 读取命令行输出的语言问题……救命的急啊~

2016-04-22 18:48:24 +08:00
 evilic

情况是这样的:

写了一个 sh ,单独执行 sh 的时候, sh 的输出什么哒都是英文的。

前一段时间写的 python 来调用这个 sh ,并且 python 内部里面读取 sh 的 stdout ,这时却发现 sh 执行的输出都变成中文的了……这到底是个什么鬼!!!!!!!!!

求救啊~所有依赖于 python 的调用现在都因为 sh 输出语言的变化而汇报操作不成功……

3026 次点击
所在节点    Python
3 条回复
evilic
2016-04-22 18:53:28 +08:00
```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()))
```

读取输出的代码大概如上。
binux
2016-04-22 18:57:30 +08:00
1. 单独执行的时候你用的是 bash 而不是 sh ,我不相信有人日常用 sh 。而 Popen, shell=True 是 sh
2. 环境变量不同, Popen, shell=True 不会加载 .bashrc 中的环境变量
evilic
2016-04-25 09:06:49 +08:00
解决办法: kill 了启动的那个 py ,重新启了一个就好了……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/273719

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX