我使用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
。
答案 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