【问题标题】:Why am I getting unwanted newline in my string?为什么我的字符串中出现不需要的换行符?
【发布时间】:2017-03-14 12:16:14
【问题描述】:

这应该很简单,很傻。但我无法让它工作。 我有一个在读取文件时定义的标题:

    if "[gene=env]" in line or "[gene=HIV2gp7]" in line:
        header = line

现在这个标题看起来像">lcl|NC_001802.1_prot_NP_057856.1_8 [gene=env]" 我需要像这样附加一个数字: ">lcl|NC_001802.1_prot_NP_057856.1_8 [gene=env]1"

我有 100 个相同的标题,它们的编号必须从 1 到 100 但是无论我尝试什么,我都无法在同一行获得号码。输出总是

>lcl|NC_001802.1_prot_NP_057856.1_8 [gene=env]
1
>lcl|NC_001802.1_prot_NP_057856.1_8 [gene=env]
2

等等

我试过了:

number = 0
    for item in randoms[group_name]:
        number+=1
        headerx = str(header)+str(number)
        print(headerx)

还有无数其他事情,但无法让它发挥作用。

【问题讨论】:

    标签: python file-io newline readline


    【解决方案1】:

    我假设您使用 readlinereadlines 从文件中获取行 - 如果是这样,每行将以 \n(换行符)字符结尾。你需要把它们去掉:

    line = line.rstrip('\n')
    

    【讨论】:

    • 是的,这行得通,谢谢。我想知道为什么在不同的地方添加+ "\b" 什么也没做。或者为什么end='' 只能在像print 这样的小地方使用
    • 退格字符将光标向后移动一个位置,当您已经在新行上时,这无济于事。我同意,为readline/s 设置一个end 参数会很好。 str.splitlineskeepends 用于相同目的。
    猜你喜欢
    • 2015-04-23
    • 1970-01-01
    • 2012-01-03
    • 2016-03-11
    • 2021-02-26
    • 2012-01-30
    • 1970-01-01
    • 2022-11-13
    • 2014-04-29
    相关资源
    最近更新 更多