gpt4 book ai didi

python - Windows 命令行区分大小写排序

转载 作者:太空宇宙 更新时间:2023-11-03 17:01:48 26 4
gpt4 key购买 nike

我有一个 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 中调用或修改此命令以消除此问题?

最佳答案

Unix 中,LC_ALL是覆盖本地化设置的环境变量。您可以使用 /L 标志覆盖 Windows sort 命令中的本地化设置。

尝试以下操作。 我没有测试。 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))

关于python - Windows 命令行区分大小写排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34968504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com