Как выполнить несколько команд на терминале, из Python - PullRequest
2 голосов
/ 30 сентября 2019

В настоящее время пытаюсь сжать с помощью шифрования пару файлов в Ubuntu.

Мне нужно, чтобы они были .zip .

То, что я обычно делал бы, этонапишите в терминал:

zip -e secretDir.zip secretFile.txt

Обычно запрашивается пароль, например:

Enter password: secret
Verify password: secret

за исключением того, что пароль фактически не отображается. Это работает очень хорошо.

Однако я пытаюсь сделать это из моего скрипта Python (3.7).

У меня есть subprocess.call(['zip', '-e', fileName + '.zip', fileName + '.txt'])

Это работает нормально, однако какТеперь я должен сказать zip, какой пароль?

Библиотеки с открытым исходным кодом, которые могут выполнять шифрование при сжатии файлов, приветствуются. Я уже слышал о Chilkat и CkPython.

1 Ответ

1 голос
/ 30 сентября 2019

Вы можете передать пароль напрямую команде zip, используя параметр -p.

subprocess.call(['zip', '-P', 'MyPassW0rd123', fileName + '.zip', fileName + '.txt'])
...