Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,仅在打印结束时执行LF(换行)_Python_Windows - Fatal编程技术网

在python中,仅在打印结束时执行LF(换行)

在python中,仅在打印结束时执行LF(换行),python,windows,Python,Windows,当我用Python的Windows解释器打印“一些文本”时,它总是在每行的末尾添加CRLF。我尝试过“打印‘一些文本’,”但当我只想打印时,它总是会显示CRLF。在Python2.7中,是否有一种方法可以在打印结束时执行LF?您可以在Windows环境中使用\r\n作为行尾 print始终添加隐式换行符。只写一个\n换行符将转换为平台默认的行分隔符;在Windows上,编写\n会为您转换为\r\n 如果只想写一个换行符而不返回回车符,则必须在二进制模式下切换stdout: import msvc

当我用Python的Windows解释器打印“一些文本”时,它总是在每行的末尾添加CRLF。我尝试过“打印‘一些文本’,”但当我只想打印时,它总是会显示CRLF。在Python2.7中,是否有一种方法可以在打印结束时执行LF?

您可以在Windows环境中使用\r\n作为行尾

print
始终添加隐式换行符。只写一个
\n
换行符将转换为平台默认的行分隔符;在Windows上,编写
\n
会为您转换为
\r\n

如果只想写一个换行符而不返回回车符,则必须在二进制模式下切换stdout:

import msvcrt, os, sys
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)

现在,新行将不再为您翻译

你不应该在候机楼里辨别。如果要打印到文件,请将其打开为“wb”而不是“w”。@nneonneo:实际上,您可以将Windows标准输出切换到二进制模式。“当我只想打印时,它总是会显示CRLF。”我很好奇。你怎么知道?我正在做的是将输出发送到一个文件(python print.py>print.txt),然后我在记事本+++@RyanMcClelland中查看它:你可以显式打开一个文件对象并写入该对象,而不是重定向stdout。在这一点上,您可以更好地控制新行的处理方式。但这也会写入
CRLF
,而不仅仅是
LF
。为什么打印Unicode对象会失败?Python不知道setmode的值,而且翻译似乎只影响行尾。@nneonneo:啊,非常好。我注意到了这一点,但没有考虑清楚这一点。此处,
二进制
标志未设置为false。