【问题标题】:Why can't I remove quotes using `strip('\"')`?为什么我不能使用 `strip('\"')` 删除引号?
【发布时间】:2015-06-29 14:29:33
【问题描述】:

我只能使用str.strip('\"') 删除左引号:

with open(filename, 'r') as fp :
    for line in fp.readlines() :
        print(line)
        line = line.strip('\"')
        print(line)

部分结果:

"Route d'Espagne"

Route d'Espagne"

使用line.replace('\"', '') 得到正确的结果:

"Route d'Espagne"

Route d'Espagne

谁能解释一下?

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    您的行不以引号结束。换行分隔符是行的一部分,在读取文件时不会被删除,因此除非您在要删除的字符集中包含 \n,否则 " 将保留。

    在诊断字符串问题时,使用print(repr(line)) 甚至print(ascii(line)) 生成调试输出,以使不可打印或非ASCII 代码点可见:

    >>> line = '"Route d\'Espagne"\n'
    >>> print(line)
    "Route d'Espagne"
    
    >>> print(repr(line))
    '"Route d\'Espagne"\n'
    

    \n 添加到str.strip() 参数:

    line = line.strip('"\n')
    

    演示:

    >>> line.strip('"')
    'Route d\'Espagne"\n'
    >>> line.strip('"\n')
    "Route d'Espagne"
    >>> print(line.strip('"\n'))
    Route d'Espagne
    

    【讨论】:

    • 使用line = line.strip('\"\n')?
    • @SparkandShine:完全正确。
    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多