如何在python中修改字符串的一部分

时间:2013-07-03 16:55:48

标签: python

当我执行以下代码时:

file1 = open("sources.conf", "r");
datalist = list(file1.readlines());
datalist[3][32]= "11";

我收到此错误:'str' object does not support item assignment。读了一下之后,我发现无法在python中更改字符串。还有其他解决方法吗?

3 个答案:

答案 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:]])