Python 2.7.15在Windows末尾添加了新行,但在Linux末尾没有添加。我该如何解决?

时间:2019-01-25 22:06:31

标签: python-2.7 printing newline

这不是不是典型的“如何删除新行或空格”问题...

一般来说,我是python新手。但我知道

print ("test", end="")
print ("test", end="")

对于Python 3和

print "test",
print "test",

对于Python 2

Python 3实现将在Linux和Windows计算机上正确打印;但是,Python 2实现将在基于Windows的计算机上执行时在执行结束时添加一行额外的行(但不适用于Linux,则可以正确打印)。有什么办法可以摆脱这条新线?

我到处搜索,似乎找不到任何人在谈论这个特定问题。这是演示的屏幕截图:

New Line issue in Windows Python 2

2 个答案:

答案 0 :(得分:1)

因此,根据print documentation

  

标准输出定义为名为stdout的文件对象

我们可能假设python I \ O是系统依赖的,所以这就是我们可以尝试猜测这种情况的解释,甚至认为打印文档指出:

  

除非打印语句,否则在末尾写一个'\ n'字符   以逗号结尾。

OR 原因是Windows和Linux威胁print的声明不同(因为print是Python 2中的一条语句,而function call是Python 3中的一条语句) )。

回到问题,如何摆脱这一行:
我将future语句用于打印功能:

from __future__ import print_function

print('test', end=' ')
print('test', end='')

如果我找到任何合理的解释,我将更新答案(应该在某个地方!)。

答案 1 :(得分:0)

在与一些人交谈并进行了一些研究之后。解决此问题的最直接方法似乎是直接使用:

sys.stdout.write()

代替打印。然后,您可以类似于C / C ++和Java的工作方式格式化输出。