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)
如果正如您所说的,文件显示
"FN:John Smith;;;\n\r"
,那么您就遇到了一个问题\r
完全出乎意料。你在使用什么操作系统,什么版本的Python,以及你是如何确定这个文件显示的?
以下是读取文件的常用习惯用法,该文件的行由您正在使用的操作系统通常使用的终止符终止,并且字段由
;
字符分隔:你可能没有读过这个Wikipedia article。。。我注意到“FN”是指“格式化名称”,而不是“名字”,还有一个“N”标记更容易解析:
我还注意到像
FN:John Smith;;;
这样的行并没有出现在文章中。您可以使用现有代码;请参见this StackOverflow question。
使用^{} 函数:
这将删除字符串末尾的所有空白。
相关问题 更多 >
编程相关推荐