python - 大字符串的某些部分不会被 str.replace() 函数替换

标签 python string replace

我正在尝试制作一个程序来获取坐标并将它们放入变量所在的位置。这会获取预制件的整个文档,作为行列表,然后将其放在一起,所有这些都有效。当然,该字符串非常大,但我试图让它用程序中变量的值替换预制件中的所有变量,如下所示:

values.replace('x1 ',str(x1))
values.replace('x2 ',str(x2))
values.replace('x3 ',str(x3))
values.replace('x4 ',str(x4))
values.replace('x5 ',str(x5))
values.replace('x6 ',str(x6))
values.replace('x7 ',str(x7))
values.replace('x8 ',str(x8))
values.replace('y1 ',str(y1))
values.replace('y2 ',str(y2))
values.replace('y3 ',str(y3))
values.replace('y4 ',str(y4))
values.replace('y5 ',str(y5))
values.replace('y6 ',str(y6))
values.replace('y7 ',str(y7))
values.replace('y8 ',str(y8))
values.replace(' z1',str(z1))
values.replace(' z2',str(z2))
values.replace(' z3',str(z3))
values.replace(' z4',str(z4))
values.replace(' z5',str(z5))
values.replace(' z6',str(z6))
values.replace(' z7',str(z7))
values.replace(' z8',str(z8))

然而,当我 打印(值) 它只是给出原始字符串,看起来像这样,而不是在变量应该在的地方有数字。

    solid
{
    "id" "4"
    side
    {
        "id" "7"
        "plane" "(x1 y1 z1) (x2 y2 z2) (x3 y3 z3)"
        "material" "DEV/DEV_BLENDMEASURE"
        "uaxis" "[1 0 0 0] 0.25"
        "vaxis" "[0 -1 0 0] 0.25"
        "rotation" "0"
        "lightmapscale" "16"
        "smoothing_groups" "0"
    }
    side
    {
        "id" "8"
        "plane" "(x6 y6 z6) (x5 y5 z5) (x4 y4 z4)"
        "material" "DEV/DEV_BLENDMEASURE"
        "uaxis" "[1 0 0 0] 0.25"
        "vaxis" "[0 -1 0 0] 0.25"
        "rotation" "0"
        "lightmapscale" "16"
        "smoothing_groups" "0"
    }
    side
    {
        "id" "9"
        "plane" "(x2 y2 z2) (x4 y4 z4) (x5 y5 z5)"
        "material" "DEV/DEV_BLENDMEASURE"
        "uaxis" "[0 1 0 0] 0.25"
        "vaxis" "[0 0 -1 0] 0.25"
        "rotation" "0"
        "lightmapscale" "16"
        "smoothing_groups" "0"
    }
    side
    {
        "id" "10"
        "plane" "(x8 y8 z8) (x6 y6 z6) (x7 y7 z7)"
        "material" "DEV/DEV_BLENDMEASURE"
        "uaxis" "[0 1 0 0] 0.25"
        "vaxis" "[0 0 -1 0] 0.25"
        "rotation" "0"
        "lightmapscale" "16"
        "smoothing_groups" "0"
    }
    side
    {
        "id" "11"
        "plane" "(x3 y3 z3) (x5 y5 z5) (x6 y6 z6)"
        "material" "DEV/DEV_BLENDMEASURE"
        "uaxis" "[1 0 0 0] 0.25"
        "vaxis" "[0 0 -1 0] 0.25"
        "rotation" "0"
        "lightmapscale" "16"
        "smoothing_groups" "0"
    }
    side
    {
        "id" "12"
        "plane" "(x1 y1 z1) (x7 y7 z7) (x4 y4 z4)"
        "material" "DEV/DEV_BLENDMEASURE"
        "uaxis" "[1 0 0 0] 0.25"
        "vaxis" "[0 0 -1 0] 0.25"
        "rotation" "0"
        "lightmapscale" "16"
        "smoothing_groups" "0"
    }
    editor
    {
        "color" "0 137 246"
        "visgroupshown" "1"
        "visgroupautoshown" "1"
    }
}

最佳答案

替换返回新值,那么你应该这样做:

values = values.replace('x1 ',str(x1))
...

请记住,Python 中的字符串是不可变的。

关于python - 大字符串的某些部分不会被 str.replace() 函数替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35256460/

相关文章:

python - 如何在 Python 中使用 JSON 从文件的特定列表中检索特定字符串

python - 如何检查 Python 枚举中项目的排序?

python - 在python中匹配两个列表

vim - 如何使用搜索命令搜索点字符?

R 替换因子级别中的重复值

Python:如何从类所在的范围获取常量?

c - 指针算术问题 - 尝试对输入字符串进行标记

java - 将大字符串写入文件的问题

Javascript - 如何在函数中使用变量

unix - 删除下划线并将其后的字符大写