You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python中字符串撇号替换为引号失效,求替代方法

解决Python字符串替换无变化问题,及INI文件参数统一引号的方案

哦,我太懂这个坑了!Python里的字符串是不可变对象replace()方法并不会直接修改原字符串本身,而是返回一个完成替换操作的新字符串——这就是你运行代码后输出还是原内容的核心原因。

修正你的测试代码

只需要把replace()的返回值重新赋值给变量(可以覆盖原变量,也可以用新变量)就行:

e = "'03:SUN/05:00:00'"
# 将替换后的新字符串赋值给原变量
e = e.replace("'", '"')
print(e)

运行这段代码,控制台就会输出你想要的"03:SUN/05:00:00"了。

处理INI文件的更优方案

如果你的目标是统一整个INI文件里参数的引号格式,其实更推荐用Python内置的configparser库,它能自动处理INI里的单/双引号,避免手动替换可能踩的坑(比如字符串里包含转义引号的情况):

import configparser

# 初始化配置解析器
config = configparser.ConfigParser()
# 读取你的INI文件
config.read('your_config.ini')

# 遍历所有section和key,统一引号格式
for section in config.sections():
    for key in config[section]:
        # 获取原始值(configparser会自动去掉包裹的单/双引号)
        raw_value = config.get(section, key)
        # 统一用单引号包裹(或者双引号,看你需求)
        config[section][key] = f"'{raw_value}'"

# 将修改后的内容写回文件
with open('formatted_config.ini', 'w') as f:
    config.write(f)

这个方法既安全又省心,不需要自己处理各种字符串边缘情况。

内容的提问来源于stack exchange,提问作者Jonas Schuster

火山引擎 最新活动