Python删除行之间的输入/空格

时间:2012-11-14 07:35:37

标签: python space enter

好的所以我已经阅读了很多帖子,建议如何消除额外的空间,但无论出于何种原因,我似乎无法将这些建议应用到我的系统中,所以我在这里寻求你的帮助。

这是我的代码的最后几行:

    for line in rline[start+5 : end] :
        words = line.split()
        word1 = int(words[1])
        print >>opennew, "%s%s" % (word1,line[30:])

新的“opennew”文件如下所示:

    1        0.876153    0.152889   -0.047464

    2        1.011880   -1.161641   -2.096289

    3        0.883419    1.558736    1.966913

    4        2.010367   -1.140725    1.053368

虽然我真正想要的是:

    1        0.876153    0.152889   -0.047464
    2        1.011880   -1.161641   -2.096289
    3        0.883419    1.558736    1.966913
    4        2.010367   -1.140725    1.053368

无论如何,我是否在代码中添加了一些内容,以便从我的输入中删除额外的(不需要的)输入/空格?

非常感谢你的帮助。

PS: (请不要问为什么我在代码中拆分行,这样做的目的是将来有一个应用程序(更好的)代码)

4 个答案:

答案 0 :(得分:7)

尝试从line

中剥离换行符
line = line.rstrip("\n")

答案 1 :(得分:3)

您可以使用line = line.rstrip()从每行删除尾随空格,也可以更改print语句以省略其自己的尾随换行符:

print >>opennew, "%s%s" % (word1,line[30:]),
#                                          ^

但是,由于print语句的语法错综复杂,最好使用rstrip() ...

答案 2 :(得分:0)

正如@ThiefMaster或@squiguy建议的那样,但另一种方式是:

import sys
sys.stdout.write('%s%s' % (word1, line[30:]))

虽然我可能会选择.rstrip

答案 3 :(得分:0)

感谢大家提出的建议,基于ThiefMaster回答我发现我可以通过添加“-1”来消除行中的最后一个空格,而不是消除Python自己的换行符,问题已修复

    print >>opennew, "%s%s" % (word1,line[30:-1])

我之前尝试的另一种方式是

    opennew.write (str(word1) + (line[30:]) + "")

最后的附加引号是消除额外(不需要的)输入/空格的引号。它对我有用,但说实话,我不知道为什么,你知道这些额外的引用是做什么的吗?

由于