如果正如您所说的,文件显示"FN:John Smith;;;\n\r",那么您就遇到了一个问题\r完全出乎意料。
你在使用什么操作系统,什么版本的Python,以及你是如何确定这个文件显示的?
以下是读取文件的常用习惯用法,该文件的行由您正在使用的操作系统通常使用的终止符终止,并且字段由;字符分隔:f = open('myfile.txt', 'r')
for line in f:
# standard OS terminator is converted to `\n`
line = line.rstrip('\n') # remove trailing newline
fields = line.split(';')
# fields[0] should refer to "FN:John Smith" in your example
for field_index, field in enumerate(fields):
if not field:
continue # empty field
tag, value = field.split(':')
print "Field %d: tag %r, value %r" % (field_index, tag, value)
你可能没有读过这个Wikipedia article。。。我注意到“FN”是指“格式化名称”,而不是“名字”,还有一个“N”标记更容易解析:N:Gump;Forrest
FN:Forrest Gump
我还注意到像FN:John Smith;;;这样的行并没有出现在文章中。