subprocess, returned non-zero exit status 1
Такой код:
import re
import subprocess
import random
pas = ''
for x in range(3): #Количество символов (3)
pas = pas + random.choice(list('1234567890')) # Генерация случайного числа.
cmd = str(subprocess.check_output([f'ping', '-c {pas}', 'google.com'], text=True))
print(type(cmd)) # Печатает тип переменной
print(cmd)
Пишет ошибку:
ping: invalid argument: ' {pas}'
Traceback (most recent call last):
File "/home/kali/test.py", line 13, in <module>
cmd = str(subprocess.check_output([f'ping', '-c {pas}', 'google.com'], text=True))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/subprocess.py", line 466, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ping', '-c {pas}', 'google.com']' returned non-zero exit status 1.
Кто может написать валидный код?
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Обработайте ошибку чтобы увидеть опечатку:
import subprocess
import random
pas = random.randrange(1, 10)
try:
output = subprocess.check_output(['ping', '-c', f'{pas}', 'google.com'], text=True)
except subprocess.CalledProcessError as e:
print(repr(e))
output = e.output
print(output)
$ python temp.py PING google.com (173.194.222.101) 56(84) bytes of data. 64 bytes from lo-in-f101.1e100.net (173.194.222.101): icmp_seq=1 ttl=108 time=4.54 ms 64 bytes from lo-in-f101.1e100.net (173.194.222.101): icmp_seq=2 ttl=108 time=4.62 ms 64 bytes from lo-in-f101.1e100.net (173.194.222.101): icmp_seq=3 ttl=108 time=4.63 ms 64 bytes from lo-in-f101.1e100.net (173.194.222.101): icmp_seq=4 ttl=108 time=4.61 ms 64 bytes from lo-in-f101.1e100.net (173.194.222.101): icmp_seq=5 ttl=108 time=4.59 ms 64 bytes from lo-in-f101.1e100.net (173.194.222.101): icmp_seq=6 ttl=108 time=4.64 ms 64 bytes from lo-in-f101.1e100.net (173.194.222.101): icmp_seq=7 ttl=108 time=4.62 ms 64 bytes from lo-in-f101.1e100.net (173.194.222.101): icmp_seq=8 ttl=108 time=4.59 ms --- google.com ping statistics --- 8 packets transmitted, 8 received, 0% packet loss, time 7011ms rtt min/avg/max/mdev = 4.549/4.610/4.646/0.044 ms