我不知道它为什么这样做,当我尝试修剪它时,它会抛出一个错误。

>>> 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

10-08 03:49