python - Django 脚本中 'sort' 命令的 subprocess.call() 正在将\M 添加到我的文件末尾

标签 python django linux unix sorting

我正在摆弄 Django。我的一个应用程序(在 management/commands 文件夹内)中有一个自定义管理脚本,其中有一个 subprocess.call() 行。我正在执行“sort A.csv -o A_sorted.csv”调用。写入的排序文件在每行末尾都充满了“^M”。我发现当从命令行运行 sort 命令或从不在 Django 中运行的普通 python 脚本中通过 subprocess.call() 调用相同的命令时,不会发生这种情况。

关于为什么会发生这种情况以及我可以采取什么措施来防止这种情况发生有什么想法吗?

谢谢。

最佳答案

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

关于python - Django 脚本中 'sort' 命令的 subprocess.call() 正在将\M 添加到我的文件末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14670990/

相关文章:

linux - 如何将文件中特定列中的唯一值更改为 linux 中的另一个值?

python - Windows 从 PyCharm 转发 PyQt5 GUI

python - 符合文本大小的 tkinter.Text 不适用于多个实例

python - python copy.deepcopy时的递归错误

Django 表单 : editing multiple sets of related objects in a single form

python - Django - 表单 - (?P<pk>\d+)/$ 表示什么?

linux - 如何为程序设置 init.d 脚本?

python - Intellij 中从头开始缩进的快捷方式?

python - Django memcached 不一致

c++ runtime_error捕获在集群节点之间不一致