如何在“utf8”中读取文件

2024-09-29 09:39:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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 e、 g<强>example.com/Ramos,但使用这个简单的引号,它仍然是这样->;example.com网站/'Ramos'这会在我使用'请求.get'

编辑: 添加带有代码调试的映像。 Image of debug


Tags: 文件代码txtreplacelistutffp姓氏
1条回答
网友
1楼 · 发布于 2024-09-29 09:39:00

您正在存储字符串的表示形式repr()是一个调试工具,输出一个有效的Python表达式来重现字符串。因此,您将得到一个包含有效Python字符串文本的字符串,其中任何不可打印的非ASCII字符都替换为转义序列(转义序列总是以\开头,后跟一个字符,或者x加上2个十六进制字符,u替换为4个十六进制字符,或者U替换为8个字符,具体取决于代码点)。你知道吗

不要使用repr()。您所拥有的只是带有一些空格(制表符和换行符)的字符串,因此^{}就是您所需要的:

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]

相关问题 更多 >