我有一个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',当我使用'request.get'时会导致错误
编辑: 使用代码调试添加图像。 Image of debug
答案 0 :(得分:0)
您正在存储字符串的表示。 repr()
是一个调试工具,输出一个有效的Python表达式来重现你的字符串。因此,您将获得一个包含有效Python字符串文字的字符串,其中任何不可打印的非ASCII字符都替换为转义序列(始终以\
开头,后跟单个字符,或x
加2十六进制字符,u
,带有4个十六进制字符或U
带有8个,具体取决于代码点。
请勿使用repr()
。你所拥有的只是带有一些空格(标签和换行符)的字符串,所以你需要str.strip()
:
apellidos_list = []
with io.open('Apellidos200.txt',encoding='utf-8') as fp:
for line in fp:
apellidos_list.append(line.strip())
或使用列表理解:
with io.open('Apellidos200.txt',encoding='utf-8') as fp:
apellidos_list = [line.strip() for line in fp]