Я пытаюсь проверить md5sum программного обеспечения, установленного в моей системе. Сначала я объясню среду, а затем объясню проблему. Есть директория / home / software. в этом каталоге есть несколько папок, таких как software1, software2 и так далее. в каждой из этих папок есть папка (скажем, folder1), которая содержит файл проверки * .md5 (check123.md5). Это содержимое этого файла, который я пытаюсь прочитать.
Eg:
>>cd /home/software/software1
>>md5sum -c folder1/check*.md5
Когда я пробую две указанные выше команды в командной строке Linux, я получаю результат. Пытаюсь написать скрипт на питоне. Итак, изначально я использовал os.system, и снова это сработало. Но теперь мои требования таковы, что я должен использовать подпроцесс. Но больше не работает.
Мой код можно смоделировать даже в командной строке python.
import subprocess, os
os.chdir(/home/software/software1)
var = "md5sum -c folder1/check*.md5"
vars = shlex.split(var)
p1 = subprocess.Popen(vars, stdout = open ("/tmp/test.txt", "a"))
Результат выглядит следующим образом: md5sum: folder1 / check * .md5: Нет такого файла или каталога.
Теперь я понимаю, что эта ошибка возникает только в том случае, если я нахожусь не в нужном каталоге. Но os.cwd () показал, что я нахожусь в правильном каталоге.
Кто-нибудь знает, в чем проблема?