字符串操作不适用于特殊字符

String operations not working with special characters

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

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
!

它将 return H!

如果我用一个文本文件尝试这个:

Hello
!
§

它只打印 H.

您的代码将完整的字符串读入变量 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