好的所以我已经阅读了很多帖子,建议如何消除额外的空间,但无论出于何种原因,我似乎无法将这些建议应用到我的系统中,所以我在这里寻求你的帮助。
这是我的代码的最后几行:
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: (请不要问为什么我在代码中拆分行,这样做的目的是将来有一个应用程序(更好的)代码)
答案 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:]) + "")
最后的附加引号是消除额外(不需要的)输入/空格的引号。它对我有用,但说实话,我不知道为什么,你知道这些额外的引用是做什么的吗?
由于