我运行了一个Python脚本,生成一个字符串,然后使用该字符串执行一个shell脚本。 我想要在Linux(Ubuntu)中检查该字符串的编码,但是不想将该字符串写入文件(磁盘操作会变慢)。 是否可能在Linux中使用RAM而不写入文件来检查一个字符串的编码? 类似于:
check-encoding '我的具有随机编码的字符串'
Python检查编码脚本也很慢。
我运行了一个Python脚本,生成一个字符串,然后使用该字符串执行一个shell脚本。 我想要在Linux(Ubuntu)中检查该字符串的编码,但是不想将该字符串写入文件(磁盘操作会变慢)。 是否可能在Linux中使用RAM而不写入文件来检查一个字符串的编码? 类似于:
check-encoding '我的具有随机编码的字符串'
Python检查编码脚本也很慢。
尝试使用文件实用工具。您可以通过使用echo
将任何字符串作为文件参数传递给带有-
选项的实用程序,该选项会将管道传输到实用程序中(许多命令使用连字符(-)代替文件名作为参数,以指示输入应来自stdin而不是文件):
:~ $ echo "test" | file -i -
/dev/stdin: text/plain; charset=us-ascii
:~ $ echo "тест" | file -i -
/dev/stdin: text/plain; charset=utf-8
使用管道将数据传递给sed:
:~ $ echo "тест" | file -i - | sed 's/.*charset=\(.*\)/\1/'
utf-8
:~ $ echo "тест" | file -i - | awk '{ print $3 }'
charset=utf-8
同时,您也可以使用Python的chardet模块。Chardet提供了一个命令行脚本,可以报告一个或多个文件的编码格式。只需安装它:
pip install chardet
并使用管道从echo中:
:~ $ echo "тест" | chardetect
<stdin>: utf-8 with confidence 0.938125