我只能使用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
任何人都可以解释一下吗?
答案 0 :(得分:9)
您的行不会结束带引号。新行分隔符是行的一部分,从文件读取时不会被删除,因此除非在要删除的字符集中包含\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