[英]Using os.system() in python to execute linux command
我在python中使用腳本從Postfix服務器獲取郵件。 該腳本提取郵件,刪除標題,僅保留電子郵件正文。 然后,它使用此主體通過os.system()
執行linux命令。 例如,我要發送帶有mkdir folder
電子郵件,腳本將創建此mkdir folder
。
問題是當我通過郵件發送ls
。 我得到回應: not found ls
第二個問題是mkdir
因為它在電子郵件的名稱中添加了^ M。 例如,我發送了mkdir folder
,它創建了“ folder
?”。
你有什么想法 ?
您已經發現了問題:電子郵件中有您所期望的^ M個字符。 (CR LF是常見的行尾約定; Unix通常不喜歡CR)。
嘗試從命令中刪除“ \\ r”: command = command.translate(None, "\\r")
。
我還敦促您仔細考慮運行通過電子郵件傳遞的任何命令所帶來的安全隱患。 可能有更安全的方法來完成您要完成的任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.