我不知道它为什么这样做,当我尝试修剪它时,它会抛出一个错误。
>>> print os.system('uptime')
21:05 up 9:40, 2 users, load averages: 0.69 0.76 0.82
0
>>> print os.system('uptime')[:-2]
21:07 up 9:42, 2 users, load averages: 0.75 0.74 0.80
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not subscriptable
有谁知道我如何阻止这种情况发生或如何在没有错误的情况下将其删除?谢谢!
最佳答案
os.system
没有做任何这样的事情;发生的事情是 uptime
本身正在写入标准输出(真正的标准输出,而不是 Python 的 sys.stdout
),而 os.system
正在返回 uptime
的返回值,即 0(表明它成功退出)。
如果要访问字符串 uptime
打印到 Python 中的 stdout,则必须使用其他调用方式,例如 subprocess.Popen
。
>>> import subprocess
>>> uptime = subprocess.Popen('uptime', stdout=subprocess.PIPE)
>>> output = uptime.stdout.read()
>>> output
' 04:20:09 up 12:13, 5 users, load average: 0.99, 1.15, 1.25\n'
有关更多详细信息,请参阅
subprocess
documentation。