在Python cod中使用“echo”命令行

2024-10-06 13:00:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试将Python与命令行解析器‘kakasi’一起使用。这是我的代码:

# -*- coding: utf-8 -*-
import os
text = 'スッキリわかる Java入門 実践編 第2版'
cmd = "echo $text | iconv -f utf8 -t eucjp | kakasi -i euc -w | kakasi -i euc -Ha -Ka -Ja -Ea -ka"
os.system(cmd)
-------------------

结果是空行,如下所示:

Process finished with exit code 0

实际上,结果应该是这样的:

sukkiri wakaru Java nyuumon jissenhen dai 2 han

我需要帮助。
提前谢谢。


Tags: 代码text命令行importechocmd解析器os
2条回答

text是python解释器只知道的变量;在其中执行命令的shell不知道$text是什么(它将计算为空字符串)。

你可以试试这个:

cmd = "echo '{}' | iconv ...".format(text)

这样就可以将字符串转换为要执行的命令。(无法测试是否有其他东西不起作用…)

(旁注:我喜欢这种东西的sh module。但它不在标准库中)。

你应该用String formatting

解决方案:

# -*- coding: utf-8 -*-
import os
text = 'スッキリわかる Java入門 実践編 第2版'
cmd = "echo {} | iconv -f utf8 -t eucjp | kakasi -i euc -w | kakasi -i euc -Ha -Ka -Ja -Ea -ka".format(text)
os.system(cmd)

相关问题 更多 >