Я загружаю файл из Интернета с помощью wget
и хочу записать имя фактического загруженного файла (оно изменяется в случае, если файл уже существует).
Я знаю, что wget
выводится в stderr
, поэтому я пытаюсь найти в нем совпадение с регулярным выражением. Должен быть один, но мой "матч" - None
(потому что я получаю ошибку, 'NoneType' object has no attribute 'group'
.
cmd = "wget " + url + " -P " + directory
args = shlex.split(cmd)
res = subprocess.run(args, check=True, stderr=subprocess.PIPE)
pattern = re.compile("\'(.+)\'", re.MULTILINE)
match = re.search(pattern, res.stderr.decode("utf-8"))
filename = match.group(1) # filename is None
Но когда я проверяю значение stderr
, это выглядит так:
... connected.HTTP request sent, awaiting response... 200 OKLength:
46Saving to: '/home/student/Downloads/helloworld' 0K
Я пытался передать команду в виде строки в subprocess.run
с shell=True
, с регулярным выражением re.MULTILINE
и без, и другие вещи безрезультатно.