【发布时间】:2026-02-08 07:00:01
【问题描述】:
我有一个 txt 文件,每一行都包含一个姓氏,一些姓氏有一个特殊的字母 'Ñ'
Apellidos200.txt
Ramos
Rios
Arias
Muñoz
为了解析和读取这个文件,我使用了这段代码。
apellidos_list = list()
with io.open('Apellidos200.txt',encoding='utf-8') as fp:
for line in fp:
x = line.replace('\t','')
x = x.replace('\'', '')# I try this
x = x.replace('\n','')
x = x.replace('\r','')
x = x.replace('\\','')
x = x.replace('"','') # And try this
apellidos_list.append(repr(x))
输出:
'Ramos'
'Rios'
'Arias'
'Muñoz'
问题是字符串是用我无法删除的简单引号传递的,我猜这是'utf-8'中的编码
我使用这个字符串来连接并创建一个 url 例如 example.com/Ramos,但是用这个简单的引号它仍然存在,这种方式 -> example.com/'Ramos' 当我使用“请求”时这会导致错误.get'
编辑: 添加带有代码调试的图像。 Image of debug
【问题讨论】:
-
那么不要使用
repr()。你为什么首先添加它? -
明确一点:这与读取数据无关;您使用
repr()添加引号。 -
我在您的输入数据中看不到任何反斜杠。剩余的
str.replace()调用都可以替换为单个str.strip()调用。您可以将整个循环替换为apellidos_list = [line.strip() for line in fp]。 -
感谢您的回复@MartijnPieters,我看到了此回复的这种方式(repr)[链接](*.com/a/147756/5280246)。但是,我删除了repr,但问题是在那之前,当for循环开始时。
-
@MartijnPieters,我在调试时添加了一个屏幕截图,如您所见,我删除了反斜杠,因为它们出现在开头。