字符串操作不使用特殊字符

时间:2016-06-23 20:09:54

标签: python utf-8 character-encoding python-2.x

我使用utf-8编码打开了一个文本文件。我试图对line[0]之类的字符串进行操作,但由于文本文件中的特殊字符,它无法正常工作。大多数时候,它不会返回任何东西。

import codecs
with codecs.open('test_2014.txt', mode='r', encoding='utf-8') as document:
    OnCode = False
    for line in document:
        conv = line.encode('utf-8')
        print conv[0]

如果我尝试使用文字文件说:

Hello
!

它将返回H!

如果我尝试使用文字文件说:

Hello
!
§

它只打印H

1 个答案:

答案 0 :(得分:0)

您的代码将完整字符串读入变量line,该变量被编码为conv因为这是一个字符串,conv[i]会为您提供字符串中的一个字符。如果行中有多个单词,则使用`split()1

for line in document:
    conv = line.encode('utf-8')
    print conv[0]

当您输入 Hello 作为第一行

>>>print conv
Hello
>>>print conv[0]
H
>>> print conv[1]
e

对于行中的多个单词

for line in document:
    conv = line.encode('utf-8').split(' ')
    print conv[0]

当您输入Hello World时,您将获得

>>>print conv
Hello World
>>>print conv[0]
Hello
>>> print conv[1]
World