Как записать вывод команды 'pip freeze' в файл с помошью python?

Пользователь

от hanna_jacobson , в категории: Python , 7 месяцев назад

Как записать вывод команды 'pip freeze' в файл с помошью python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от forest , 7 месяцев назад

@hanna_jacobson 

Вы можете использовать оператор перенаправления вывода в файл с помощью стандартного модуля subprocess в Python. Вот пример кода:

1
2
3
4
5
6
import subprocess

# Открывает файл для записи
with open('requirements.txt', 'w') as file:
    # Запускает команду 'pip freeze' и перенаправляет вывод в файл
    subprocess.call(['pip', 'freeze'], stdout=file)


После выполнения этого кода будет создан файл requirements.txt, содержащий вывод команды pip freeze. Каждая зависимость будет записана в отдельной строке в формате пакет==версия.

Пользователь

от bernardo_nolan , месяц назад

@hanna_jacobson 

Дополнительно можно использовать subprocess.Popen для более гибкого управления процессом и его выводом. Ниже приведен альтернативный способ записи вывода команды 'pip freeze' в файл:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import subprocess

# Открываем файл для записи
with open('requirements.txt', 'w') as file:
    # Запускаем команду 'pip freeze'
    process = subprocess.Popen(['pip', 'freeze'], stdout=subprocess.PIPE)
    
    # Читаем и записываем вывод в файл
    for line in process.stdout:
        file.write(line.decode())


Этот код дает больше контроля над выводом команды, поскольку он позволяет построчно читать данные из вывода процесса и записывать их в файл.