如何删除python中的新行字符?

2024-05-23 18:24:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个vcf解析器,我已经打开了文件,但现在我需要解析他们的名字。文件显示“FN:John Smith;;;\n\r”我想取出\n和\r。有人能帮我吗?


Tags: 文件解析器名字johnfnvcfsmith
2条回答

如果正如您所说的,文件显示"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;;;这样的行并没有出现在文章中。

您可以使用现有代码;请参见this StackOverflow question

使用^{}函数:

s = s.rstrip()

这将删除字符串末尾的所有空白。

相关问题 更多 >