Subprocess.call () и gunzip ошибка

Я соглашаюсь с тем, на что другие люди ответили здесь. Лучше просто обновить.

Вам будет нелегко запускать более новый Firefox на такой старой ОС. Необходимо будет обновить большие части ОС только, чтобы заставить более свежий Firefox компилировать, потому что это зависит от API от более поздних версий gtk, gdk, libstdc ++, и т.д. Вы в значительной степени собираетесь быть обновлением базовой ОС в той точке.

Если действительно необходимо использовать такие старые версии программного обеспечения, Вы смогли сходить с рук использование RHEL4 или CentOS4, который имеет приблизительно год больше жизни в нем, прежде чем это будет не поддерживаться.

3
04.09.2012, 10:35
1 ответ

Проблема состоит в том, что Вы являетесь передающими shell=True, таким образом, Вы выполняетесь

sh -c gunzip /path/to/file.gz

(принятие a_path+myfile_gz "/path/to/file.gz"). Другими словами, потому что shell параметр True, первый элемент списка команд является отрывком оболочки; другими аргументами являются аргументы тому отрывку оболочки (здесь просто $0). Это объяснено в документации.

Если Вы не учитываете shell=True, Вы получите работу, но не хороший код. Не управляйте путями как строками; используйте функции в os.path. Это a_path+myfile_gz должен, вероятно, быть os.path.join(a_path, myfile_gz) вместо этого.

В любом случае Python имеет встроенную поддержку gzip. Не используйте внешнюю команду.

2
27.01.2020, 21:29

Теги

Похожие вопросы