Python ';排序';Django脚本中的命令正在将\M添加到我的文件末尾

Python ';排序';Django脚本中的命令正在将\M添加到我的文件末尾,python,django,linux,unix,sorting,Python,Django,Linux,Unix,Sorting,我在和Django鬼混。我在我的一个应用程序中(在management/commands文件夹中)有一个自定义管理脚本,该脚本有一个subprocess.call()行。我正在打一个“sort a.csv-o a_sorted.csv”电话。写入的排序文件在每行末尾都充满了“^M”。我发现从命令行运行sort命令或通过subprocess.call()调用同一命令时,在没有在Django中运行的普通python脚本中不会发生这种情况 关于为什么会发生这种情况,以及我能做些什么来防止这种情况发生,

我在和Django鬼混。我在我的一个应用程序中(在management/commands文件夹中)有一个自定义管理脚本,该脚本有一个subprocess.call()行。我正在打一个“sort a.csv-o a_sorted.csv”电话。写入的排序文件在每行末尾都充满了“^M”。我发现从命令行运行sort命令或通过subprocess.call()调用同一命令时,在没有在Django中运行的普通python脚本中不会发生这种情况

关于为什么会发生这种情况,以及我能做些什么来防止这种情况发生,有什么想法吗


谢谢。

排序不太可能自动将行尾从Unix更改为Windows。更有可能的是,
A.csv
已经包含Windows行结尾,而
sort
仅保留它们。如果首先是您的脚本创建了
A.csv
,请仔细检查正在使用的换行规则。

在运行此脚本之前,A.csv文件不包含windows样式的行结尾。我相信我已经解决了这个问题。在排序之前,我没有关闭csv编写器正在使用的文件。我添加了一些结束语句并运行脚本,行尾字符消失了。