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

如何删除python中的新行字符?,python,newline,Python,Newline,我正在编写一个vcf解析器,我打开了文件,但现在我需要解析它们的名字。文件显示“FN:John Smith;;\n\r”我要取出\n和\r。有人能帮我吗?使用该功能: s = s.rstrip() 这将删除字符串末尾的所有空白。如果如您所说,文件显示的是“FN:John Smith;;;\n\r”,那么您有一个问题-\r完全出乎意料 您使用的是什么操作系统,Python的哪个版本,以及您如何确定该文件显示了这一点 下面是一个常用的习惯用法,用于读取一个文件,该文件的行由您正在使用的操作系统通常

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

使用该功能:

s = s.rstrip()

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

如果如您所说,文件显示的是
“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)
你可能没有读过这个。。。我注意到“FN”表示“格式化名称”,而不是“名字”,还有一个更容易解析的“N”标记:

N:Gump;Forrest
FN:Forrest Gump
我还注意到像
FN:johnsmith未出现在文章中

您可以使用现有代码;请参阅。

-1两个原因:(a)使用
rstrip()
是一个kludgeon(kludgeon)(介于kludge和大头棒之间),它在这种情况下“起作用”,但却是一个极坏的习惯。使用文本文件的安全工作习惯(不使用csv模块时)是使用
rstrip('\n')
然后拆分或其他方法仅丢弃换行符。这样,当字段被制表符分隔时,或者当您查找末尾有尾随空格的可变宽度字段时,或者当记录是固定长度的时,您就不会遇到麻烦。(b)不评论OP数据末尾奇怪的
\r