当我执行以下代码时:
file1 = open("sources.conf", "r");
datalist = list(file1.readlines());
datalist[3][32]= "11";
我收到此错误:'str' object does not support item assignment
。读了一下之后,我发现无法在python中更改字符串。还有其他解决方法吗?
答案 0 :(得分:2)
切割字符串并将其重新分配到列表中的相同位置:
datalist[3] = datalist[3][:31] + '11' + datalist[3][33:]
答案 1 :(得分:0)
这个怎么样(使用切片):
datalist[3] = datalist[3][:31] + "11" + datalist[3][33:]
此外,Python在每个语句后都不使用;
。
您还可以将字符串更改为列表,然后再返回:
temp = list(datalist[3])
temp[32:34] = "11"
datalist[3] = "".join(temp)
答案 2 :(得分:0)
我建议你逐行阅读并修改字符串如果需要(我不确定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:]])