我有一些 UTF-8 .txt 文件,我想将它们转换为全部大写。如果它只是 ASCII,我可以使用:
tr [:lower:] [:upper:]
Run Code Online (Sandbox Code Playgroud)
但由于我正在使用变音符号和其他东西,它似乎不起作用。我想如果我设置了适当的语言环境,它可能会起作用,但我需要这个脚本是可移植的。
我知道为什么这总体上是好的:更快的安全修复,更容易的打包,更多的功能。但是,我试图说服一些同事,我们不需要将库与我们的程序捆绑在一起。如果没有这个库,它将无法运行,但该库现在已经稳定了一段时间,并且在可预见的未来仍将如此。我看不出有任何理由不将其解绑。
我可以用什么论据来说服他们?
我的具体情况是这样的:我正在研究SymPy,它是一个用于符号数学的开源 Python 库。它的核心部分是mpmath,它是一个用于多预置浮点运算的库。SymPy 没有 mpmath 就无法工作,别无选择。因此,它从一开始就与 SymPy 捆绑在一起(有人告诉我,每次导入新版本时,通常都会有一些小的不兼容性需要修复)。还需要注意的是,mpmath 的开发者曾经参与过 SymPy 的开发。现在有一个关于拆分 mpmath 的问题,您可以在这里阅读全部内容。
总结那里的讨论:
解绑:
移植到 Python 3 稍微容易一些(恕我直言,次要参数)
更易于分发的打包
为用户提供更快的(安全)功能更新
“打包和处理依赖是难题,但它们已经解决了。这绝对不是我们应该做自己的事情的领域。”
继续捆绑:
安装。在 Linux 上很容易,在 Mac 上更难,在 Windows 上非常困难。缺乏su访问等问题。
它是 SymPy 的一个组成部分,即 sympy 没有它就不能工作(根本)
有没有其它的包,可以做mpmath的工作
“当我作为用户下载 sympy 时,我希望它能够正常工作。”
这是我的具体情况,但我会接受一个也能提供良好、一般性答案的答案。