Получение системных вызовов Python в виде строковых результатов - PullRequest
6 голосов
/ 24 апреля 2009

Я бы хотел использовать os.system("md5sum myFile") и получить результат, возвращаемый из os.system, а не просто запустить его в подоболочке, где он отображается.

Короче я бы хотел это сделать:

resultMD5 = os.system("md5sum myFile")

И иметь только md5sum в результате MD5 и не отражаться.

Ответы [ 3 ]

11 голосов
/ 24 апреля 2009

subprocess лучше, чем использовать os.system или os.popen

import subprocess
resultMD5 = subprocess.Popen(["md5sum","myFile"],stdout=subprocess.PIPE).communicate()[0]

Или просто рассчитайте md5sum самостоятельно с помощью модуля hashlib.

import hashlib
resultMD5 = hashlib.md5(open("myFile").read()).hexdigest()
0 голосов
/ 24 апреля 2009
import subprocess

p = subprocess.Popen("md5sum gmail.csv", shell=True, stdout=subprocess.PIPE)
resultMD5, filename = p.communicate()[0].split()
print resultMD5
0 голосов
/ 24 апреля 2009

Вам, вероятно, следует использовать модуль подпроцесса для замены os.system.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...