python - 给定整数参数Python时的字符串操作

标签 python string svg

我正在处理一个 SVG 文件。 我有这个字符串作为样式

'.cls-1{fill:#755841;}.cls-2{fill:#f7c394;}.cls-3{fill:#9b7657;}.cls- 
4{fill:#7f6145;}.cls-5{fill:#ffc9a1;}.cls-6{fill:#ffcd98;}.cls- 
7{fill:#3d0c0c;}.cls-8{fill:#fff;}.cls-9{fill:#313cc4;}'

我想创建一个函数来接收输入(例如 14)并将此字符串更改为从输入的连续数字开始。例如,这里的类(class)将从 14 + 1 = 15 开始,依此类推:

'.cls-15{fill:#755841;}.cls-16{fill:#f7c394;}.cls-17{fill:#9b7657;}.cls- 
18{fill:#7f6145;}.cls-19{fill:#ffc9a1;}.cls-20{fill:#ffcd98;}.cls- 
21{fill:#3d0c0c;}.cls-22{fill:#fff;}.cls-23{fill:#313cc4;}'

不确定什么是最好的方法。是正则表达式吗?

最佳答案

嗯,字符串其实就是CSS代码。如何使用 python CSS 解析器解析它,然后实用地访问生成的对象?

使用 cssutils:link

import cssutils

css = '.cls-1{fill:#755841;}.cls-2{fill:#f7c394;}.cls-3{fill:#9b7657;}.cls-4{fill:#7f6145;}.cls-5{fill:#ffc9a1;}.cls-6{fill:#ffcd98;}.cls-7{fill:#3d0c0c;}.cls-8{fill:#fff;}.cls-9{fill:#313cc4;}'

sheet = cssutils.parseString(css)

for rule in sheet:
    text = rule.selectorText.split('-')
    name,num = text
    num = int(num)
    num += 10

    rule.selectorText = name + '-' + str(num)        

print sheet.cssText.translate(None, ' \n\t\r')

输出:

.cls-11{fill:#755841}.cls-12{fill:#f7c394}.cls-13{fill:#9b7657}.cls-14{fill:#7f6145}.cls-15{fill:#ffc9a1}.cls-16{fill:#ffcd98}.cls-17{fill:#3d0c0c}.cls-18{fill:#fff}.cls-19{fill:#313cc4}

关于python - 给定整数参数Python时的字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50660221/

相关文章:

python - 在一个大的 numpy 数组中重新排列行会将一些行归零。如何解决?

string - UITextView 包含粗体和常规字符串

javascript - 如何根据javascript中的鼠标事件找到SVG形状的弧长和 Angular ?

python - 对于 string_list : s = func(s) can't change string s 中的 s

python - 打开作为记录存储在 Django 数据库中的文本文件

python - 如何在 django 中编写 urlpatterns?

javascript - ${}(美元符号和大括号)在 JavaScript 中的字符串中是什么意思?

c++ - 关于从字符数组转换为字符串的问题 - C++

javascript - 如何更改 SVG 元素上的曲线

javascript - 从 Javascript 访问 SVG 对象时收到 Uncaught SecurityError