Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.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 在windows上写入标准输出时使用什么换行符_Python_Windows_Newline_Stdout_Stderr - Fatal编程技术网

Python 在windows上写入标准输出时使用什么换行符

Python 在windows上写入标准输出时使用什么换行符,python,windows,newline,stdout,stderr,Python,Windows,Newline,Stdout,Stderr,如果我用 导入系统 sys.stdout('a\nb\nc') 然后运行它,我明白了 $ python check_stdout.py a b c 如果我把它改成 导入系统 sys.stdout('a\r\nb\r\nc') 那我还是会 ```console $ python check_stdout.py a b c 因此,在Windows上写入stdout或stderr时,可以使用\n作为行分隔符吗?您可以在Windows上毫无问题地使用\n或\r\n。但是,如果您正在向stderr

如果我用

导入系统 sys.stdout('a\nb\nc') 然后运行它,我明白了

$ python check_stdout.py
a
b
c
如果我把它改成

导入系统 sys.stdout('a\r\nb\r\nc') 那我还是会

```console
$ python check_stdout.py
a
b
c

因此,在Windows上写入stdout或stderr时,可以使用
\n
作为行分隔符吗?

您可以在Windows上毫无问题地使用
\n
\r\n
。但是,如果您正在向stderr和stdout写入数据,那么最佳做法是匹配操作系统对换行符的定义,因此在输出到控制台时最好使用
\r\n

,这并不重要,因为windows控制台将\n解释为换行符。当您以“非二进制”模式输出到文件时,如果使用python3\n,将转换为特定于环境的换行符。确定。因此,如果我正在制作一个Python命令行工具,并且想要输出一条跨多行的消息,我可以编写例如
sys.stderr('a\nb\nc')
,这样它就可以跨平台工作?如果使用Python 3,stdout和stderr是以文本模式打开的(我找不到文档中说明了这一点,但它们很可能是以文本模式打开的)解释器将处理换行转换。是的,Python3.6+。酷,谢谢!需要考虑的问题是,你会一直在Windows上,或者这个脚本会在Linux上运行吗?