当我执行以下代码时:
file1 = open("sources.conf", "r");
datalist = list(file1.readlines());
datalist[3][32]= "11";
我得到这个错误:'str' object does not support item assignment
。看了一点,我发现在python中不能改变字符串。有没有其他解决方法?
当我执行以下代码时:
file1 = open("sources.conf", "r");
datalist = list(file1.readlines());
datalist[3][32]= "11";
我得到这个错误:'str' object does not support item assignment
。看了一点,我发现在python中不能改变字符串。有没有其他解决方法?
切片字符串并将其重新分配到列表中的相同位置:
datalist[3] = datalist[3][:31] + '11' + datalist[3][33:]
这个怎么样(使用切片):
datalist[3] = datalist[3][:31] + "11" + datalist[3][33:]
此外,Python 不会;
在每条语句之后使用。
您还可以将字符串更改为列表,然后再返回:
temp = list(datalist[3])
temp[32:34] = "11"
datalist[3] = "".join(temp)
我建议您逐行阅读并修改字符串(如果需要)(我不确定这readlines()
是最好的解决方案(因为它将整个文件读入内存)
with open("sources.conf", "r") as file1
datalist = []
for i, line in enumerate(file1):
if i == 3:
datalist[i] = line[:32] + "11" + line[33:]
else:
datalist[i] = line
或使用join
方法
datalist[i] = ''.join([line[:32], "11", line[33:]])