我有一个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中调用或修改此命令以删除此问题?
发布于 2016-01-23 22:10:27
在Unix中,LC_ALL是覆盖本地化设置的环境变量。可以使用sort标志覆盖/L命令中的本地化设置。
试试看以下几点。我没测试过。Windows命令是基于文档放在一起的。
另外,对于平台确定,请看一下如何在Python中找到当前的操作系统?[复本]。
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))https://stackoverflow.com/questions/34968504
复制相似问题