python - 为什么我不能使用 `strip('\"' )` 删除引号?

标签 python python-3.x

我只能使用 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

谁能解释一下?

最佳答案

您的行没有结束 引号。换行符是行的一部分,并且在从文件读取时不会被删除,因此除非您在要删除的字符集中包含 \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

关于python - 为什么我不能使用 `strip('\"' )` 删除引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31118332/

相关文章:

python - 通过python代码附加JSON文件

python - 构造并排序元组列表

python - Django 模板 : Embed css from file

python - 使用 QScintilla 和 PyQt 的自动完成建议中没有 python 关键字

python - pyqt中的切换按钮

python - 使用 Pandas 从遥测数据中识别停靠点

python - (python)pmdarima.auto_arima(pyramid.auto_arima) 不会自动使用 d 和 D 参数

python - 自定义 Base64 编码器无法正确编码

python - 正则表达式无法识别 '#' 来删除

python - PyQt5 QScrollArea 不滚动,而是调整项目大小