我正在编写一个vcf解析器,我打开了文件,但现在我需要解析它们的名字。该文件显示“FN:John Smith ;;; \ n \ r \ n”我想取出\ n和\ r \ n。有人能帮助我吗?
答案 0 :(得分:12)
答案 1 :(得分:1)
如果您说文件显示为"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”标记: / p>
N:Gump;Forrest
FN:Forrest Gump
我还注意到文章中没有显示FN:John Smith;;;
这样的行。
您可以使用现有代码;见this StackOverflow question。