Я хочу получить вывод команды в скрипте Python. Команда довольно проста - ls -l $filename | awk '{print $5}'
, по сути захватывает размер файла
Я пробовал несколько способов, но я почему-то не могу правильно передать переменную filename.
Что я делаю не так с любым подходом?
Спасибо за помощь
Пробовали два разных способа, как показано ниже:
Метод 1
name = subprocess.check_output("ls -l filename | awk '{print $5}'", shell=True)
print name
Здесь ls
жалуется, что имя файла не существует, что я полностью понимаю, но я не уверен, что бы я сделал, чтобы передать имя файла в качестве переменной
Метод 2
first = ['ls', '-l', filename]
second = ['awk', ' /^default/ {print $5}']
p1 = subprocess.Popen(first, stdout=subprocess.PIPE)
p2 = subprocess.Popen(second, stdin=p1.stdout, stdout=subprocess.PIPE)
out = p2.stdout.read()
print out
Здесь просто ничего не печатается.
фактическим результатом будет размер файла.