python 如何把文本中每行的色值,替换为随机值,

我要把文本中每行的色值如#ffe1f1ff:,替换为随机值,

注意:文本中有一样的色值比如#ffffffff有两个,替换为随机值时不能一样

文本文件代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="Blue_1">#ffe1f1ff</color>
    <color name="Blue_10">#ff1853c2</color>
    <color name="abc_search_url_text_normal">#ff7fa87f</color>
    <color name="all_apps_label_text">#00000000</color>
    <color name="all_apps_label_text_dark">#61ffffff</color>
    <color name="all_apps_prediction_row_separator">#3c000000</color>
    <color name="all_apps_prediction_row_separator_dark">#3cffffff</color>
    <color name="tooltip_background_dark">#e6616161</color>
    <color name="tooltip_background_light">#e6ffffff</color>
    <color name="transparent">#00000000</color>
    <color name="uninstall_bg_color">#80000000</color>
    <color name="uninstall_split_line_color">#12ffffff</color>
    <color name="uninstall_target_hover_tint">#e6616161</color>
    <color name="volume_settings_icon_color">#7fffffff</color>
    <color name="white">#ffffffff</color>
</resources>

 

import re
import random

filename = "01.xml"
with open(filename,'r',encoding='utf-8') as f:
    xml = f.read()

def fp(p):
    return "#ff{:0>6x}".format(random.randint(0x0,0xffffff))
xml = re.sub(r'#[0-9A-Fa-f]{8}',fp,xml)
print(xml)

with open(filename,'w',encoding='utf-8') as f:
    f.write(xml)

 

色值随机值也是8位的16进制吧

import re
import random
html = '''
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="Blue_1">#ffe1f1ff</color>
    <color name="Blue_10">#ff1853c2</color>
    <color name="abc_search_url_text_normal">#ff7fa87f</color>
    <color name="all_apps_label_text">#00000000</color>
    <color name="all_apps_label_text_dark">#61ffffff</color>
    <color name="all_apps_prediction_row_separator">#3c000000</color>
    <color name="all_apps_prediction_row_separator_dark">#3cffffff</color>
    <color name="tooltip_background_dark">#e6616161</color>
    <color name="tooltip_background_light">#e6ffffff</color>
    <color name="transparent">#00000000</color>
    <color name="uninstall_bg_color">#80000000</color>
    <color name="uninstall_split_line_color">#12ffffff</color>
    <color name="uninstall_target_hover_tint">#e6616161</color>
    <color name="volume_settings_icon_color">#7fffffff</color>
    <color name="white">#ffffffff</color>
</resources>

'''
def fp(p):
    return "#{:0>8x}".format(random.randint(0x0,0xffffffff))
html = re.sub(r'#[0-9A-Fa-f]{8}',fp,html)
print(html)

 

上面漏写了,替换的随机值应为色值随机值,

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y