Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/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无法正确处理回车符(新行)_Python_Parsing_Scripting_Cross Platform_Carriage Return - Fatal编程技术网

Python无法正确处理回车符(新行)

Python无法正确处理回车符(新行),python,parsing,scripting,cross-platform,carriage-return,Python,Parsing,Scripting,Cross Platform,Carriage Return,根据python的官方文档,3.x及以上版本删除了用于读取文件的“U”参数,默认情况下包括对不同回车的通用支持。但是,这不适用于最新版本(3.8.6) 我期望得到类似的输出: G92 E0 ; reset extrusion distance ; Filament gcode M104 S235 G1 Z0.250 F10800.000 ; move to next layer (0) G1 E-7.00000 F3300.00000 ; retract G92 E0 ; reset extr

根据python的官方文档,3.x及以上版本删除了用于读取文件的“U”参数,默认情况下包括对不同回车的通用支持。但是,这不适用于最新版本(3.8.6)

我期望得到类似的输出:

G92 E0 ; reset extrusion distance
; Filament gcode
M104 S235

G1 Z0.250 F10800.000 ; move to next layer (0)
G1 E-7.00000 F3300.00000 ; retract
G92 E0 ; reset extrusion distance
但我得到:

G92 E0 ; reset extrusion distance

; Filament gcode

M104 S235


G1 Z0.250 F10800.000 ; move to next layer (0)

G1 E-7.00000 F3300.00000 ; retract

G92 E0 ; reset extrusion distance
为什么会发生这种情况?据介绍,python现在支持通用换行符。此外:

那么我错过了什么?我不想剥离任何内容,因为这需要我首先确定每个文件使用哪个回车符。因为这个脚本可以在每个操作系统上运行,所以这是必需的

那么,我如何让这种通用支持按预期工作呢


很奇怪,我看到很多话题,很像这个。但是没有一个真正有1:1的目标。怎么会这样?一些人想删除所有换行符,例如,其他人正在剥离。为什么没有人对运行不正常的universal support功能有任何问题?

原因是返回的行是原样的,这意味着返回的列表项还将包括末尾的新行:

>>> import io
>>> io.StringIO('line_1\nline_2').readlines()
['line_1\n', 'line_2']

插入第二个新行时,默认值为
end='\n'
的参数。

是否询问在循环中打印时为什么会有空行?
计数是否正确?另一方面,您可以在循环之前使用
count=len(行)
而不是循环中的
count+=1
。请尝试打印(行,结束=“”)
readlines
返回每一行末尾带有
\n
<代码>打印还添加了换行符。考虑使用<代码> FIL.Read().SPLITLIN()/<代码>。但是如何修复它呢?正如上面的其他评论所建议的,只需使用“代码>结束= ''/COD>参数,如::代码>打印(行,结束=)”<代码> >
>>> import io
>>> io.StringIO('line_1\nline_2').readlines()
['line_1\n', 'line_2']