Python删除行之间的回车/空格
好的,所以我已经读了很多关于如何消除多余空间的帖子,但不管出于什么原因,我似乎无法将这些建议应用到我的系统中,所以我在这里请求您的帮助 以下是我代码的最后几行:Python删除行之间的回车/空格,python,space,enter,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文件如
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
我是否向代码中添加了一些内容,以从输入中删除多余的回车/空格
非常感谢你的帮助
附言:
请不要问我为什么要拆分代码中的行,这是有目的的,它将在将来的更好的代码中有一个应用程序
尝试从行中剥离换行符:
您可以使用line=line.rstrip从每行中删除尾随空格,也可以更改print语句以省略其自身的尾随换行符:
print >>opennew, "%s%s" % (word1,line[30:]),
# ^
但是,由于print语句的语法复杂,可能最好使用rstrip…您可以使用line=line.rstrip从每一行中删除尾随空格,或者更改print语句以省略其自身的尾随换行符:
print >>opennew, "%s%s" % (word1,line[30:]),
# ^
但是,由于print语句的语法复杂,可能最好按照@ThiefMaster或@squiguy的建议使用rstrip…,但另一种方法是:
import sys
sys.stdout.write('%s%s' % (word1, line[30:]))
虽然我可能会像@ThiefMaster或@squiguy建议的那样选择.rstrip,但另一种方法是:
import sys
sys.stdout.write('%s%s' % (word1, line[30:]))
尽管我可能会选择.rstrip谢谢大家的建议,但根据ThiefMaster的回答,我突然想到,我可以通过添加-1来消除行中的最后一个空格,而不是删除Python自己的换行符,这样问题就解决了
print >>opennew, "%s%s" % (word1,line[30:-1])
我以前试过的另一种方法是
opennew.write (str(word1) + (line[30:]) + "")
末尾的附加引号是用来消除额外不需要的回车/空格的引号。这对我来说很有效,但老实说,我不知道为什么,你知道这些额外的引语是怎么做的吗
谢谢大家的建议,基于ThiefMaster的回答,我想我可以通过添加-1来消除行中最后的空白,而不是删除Python自己的换行符,这样问题就解决了
print >>opennew, "%s%s" % (word1,line[30:-1])
我以前试过的另一种方法是
opennew.write (str(word1) + (line[30:]) + "")
末尾的附加引号是用来消除额外不需要的回车/空格的引号。这对我来说很有效,但老实说,我不知道为什么,你知道这些额外的引语是怎么做的吗
谢谢我确实喜欢打印任何东西,但我也同意它有时太微妙或只是删除了,因为它不被理解,也被认为是错误的。唯一的一点是OP可能需要.rstrip'\n',如果出于某种原因,尾随空格是有意义的,那么它会将一个人类可读的纯文本表转储到stdout。因此,尾随空格很可能不重要,通常也不需要。例如,在将数据重定向到文件的情况下。我确实喜欢打印任何内容,但我同意,它有时太微妙,或者只是删除了,因为它不被理解,并且被认为是错误的。唯一的一点是OP可能需要.rstrip'\n',如果出于某种原因,尾随空格是有意义的,那么它会将一个人类可读的纯文本表转储到stdout。因此,尾随空格很可能不重要,通常也不需要。例如,在将数据重定向到文件的情况下。您不需要在Windows上执行任何不同的操作。@martineau真的吗?我认为您需要删除Windows文件的回车符。我可能错了,因为我没有办法测试它。如果数据以非二进制文本模式从/写入文件,默认的打开模式,即从/到平台行尾约定的转换,当前在Python中自动处理。您不需要在Windows上做任何不同的操作。@martineau真的吗?我认为您需要删除Windows文件的回车符。我可能是错的,因为我没有办法测试它。如果数据以非二进制文本模式从/写入文件,默认的打开模式,即从/到平台的行结束约定的转换,当前会在Python中自动处理。谢谢大家的建议,根据ThiefMaster的回答,我觉得我可以通过添加一个-1来消除行中的最后一个空格,而不是消除Python自己的换行符,这样问题就解决了print>>opennew,%s%s%word1,第[30:-1]行感谢大家的建议,根据ThiefMaster的回答,我觉得我可以通过添加-1来消除行中的最后一个空格,而不是消除Python自己的换行符,这样问题就解决了print>>opennew,%s%s%word1,第[30:-1]行