我有一个Python文件,它调用底层操作系统提供的区分大小写的排序例程。该程序最初在 Unix 中进行了测试。
代码片段如下所示:
def sort(path, filename, args=''):
s = 'LC_ALL=C sort -S 50% --parallel=4 {0} {1} -o {1}'
status = subprocess.call(s.format(args, os.path.join(path, filename)), shell=True)
if status != 0:
raise Exception('unable to sort file: {}'.format(filename))
但是,在 Windows 中运行此程序会引发错误
"LC_ALL=C :Command not found"
和默认"排序" Windows中的例程区分大小写。
是否有任何相应的区分大小写的例程我可以在Windows中调用或修改此命令以解决此问题?
答案 0 :(得分:1)
在Unix
中,LC_ALL
是覆盖本地化设置的环境变量。您可以使用sort
标记在Windows /L
命令中覆盖本地化设置。
尝试以下方法。 我没有测试它。 Windows排序命令基于documentation放在一起。
此外,对于平台确定,请查看How can I find the current OS in Python? [duplicate]。
import os
import sys
import subprocess
def sort(path, filename, args=''):
if 'win' in sys.platform.lower():
s = 'sort /L /C {0} /o {1}'
else:
s = 'LC_ALL=C sort -S 50% --parallel=4 {0} {1} -o {1}'
status = subprocess.call(s.format(args, os.path.join(path, filename)), shell=True)
if status != 0:
raise Exception('unable to sort file: {}'.format(filename))