列表中的字符串不接受赋值
String in a list doesn't accept assignment
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
的输出,将命令的输出拆分为一个列表,然后 trim 关闭“%”字符, 以便驱动器使用可以用作 if 语句中的比较器。然后,如果它超过 90%,它应该给服务器管理员发邮件。
但是,drive_usage[x] = s2
触发了 'str' object does not support item assignment
。据我所知,这不应该触发,因为该行应该访问列表中的字符串,而不是字符串中的字符。如有任何帮助或建议,我们将不胜感激!
行:
drive_usage.split()
应该是:
drive_usage = drive_usage.split()
作为字符串方法 .split()
returns 一个列表,而你期望它用它的部分列表替换字符串,而这并没有发生。
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
的输出,将命令的输出拆分为一个列表,然后 trim 关闭“%”字符, 以便驱动器使用可以用作 if 语句中的比较器。然后,如果它超过 90%,它应该给服务器管理员发邮件。
但是,drive_usage[x] = s2
触发了 'str' object does not support item assignment
。据我所知,这不应该触发,因为该行应该访问列表中的字符串,而不是字符串中的字符。如有任何帮助或建议,我们将不胜感激!
行:
drive_usage.split()
应该是:
drive_usage = drive_usage.split()
作为字符串方法 .split()
returns 一个列表,而你期望它用它的部分列表替换字符串,而这并没有发生。