列表中的字符串不接受赋值

时间:2015-07-06 17:40:48

标签: python python-2.7 ubuntu ubuntu-12.04

import os
f=os.popen('df -h')
drive_usage=f.read()
drive_usage.split()
email('test','Critical! Drive usage is very high!')
for x in range(4,len(drive_usage)-1,6):
    s2 = drive_usage[x][0:len(drive_usage[x])]
    drive_usage[x] = s2
    if drive_usage[x]>90:
        #email admin

此代码应读取ubuntu 12.04服务器上df -h的输出,将命令的输出拆分为一个列表,然后修剪'%'字符关闭,以便驱动器使用可以用作if语句中的比较器。然后,如果它超过90%,它应该通过电子邮件发送给服务器管理员。

但是,drive_usage[x] = s2会触发'str' object does not support item assignment。据我所知,这不应该触发,因为该行应该访问列表中的字符串,而不是字符串中的字符。任何帮助或建议将不胜感激!

1 个答案:

答案 0 :(得分:3)

该行:

drive_usage.split()

应该是:

drive_usage = drive_usage.split()

由于字符串方法.split()返回一个列表,而您希望它将字符串替换为其未发生的部分列表。