在python中使用os.system()来执行linux命令

时间:2014-10-24 20:31:22

标签: python linux imap ls os.system

我在python中使用脚本从Postfix服务器获取邮件。此脚本提取邮件,删除标题并仅留下电子邮件的正文。然后它使用此主体通过os.system()执行linux命令。例如,我发送带有mkdir folder的电子邮件并创建此脚本。

当我通过邮件发送ls时出现问题。我得到了回复: not found ls

第二个问题是mkdir,因为它会在电子邮件中添加 ^ M 来命名。例如,我发送了mkdir folder并创建了" folder?"。

你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您已经确定了问题:电子邮件中有^ M个字符,您并不期望这些字符。 (CR LF是一种常见的行结束约定; Unix通常不喜欢CR)。

尝试删除" \ r"来自您的命令:command = command.translate(None, "\r")

我还强烈建议您仔细考虑运行电子邮件发送的任何命令的安全隐患。做一些你想要完成的事情可能会更加安全。