Правильно ли я использую системный вызов / вызов подпроцесса?

RFC 2396 раздел 4.1:

Когда ссылка URI используется для выполнения поиска по идентифицированному ресурсу, необязательный идентификатор фрагмента, отделенный от URI посредством символа crosshatch ("#"), состоит из дополнительной справочной информации, которая должна быть интерпретирована пользовательским агентом после успешного завершения поиска. Таким образом, он не является частью URI, но часто используется в сочетании с URI.

blockquote>

(выделено мной)

0
задан Nicholas 27 February 2019 в 20:54
поделиться

1 ответ

Когда я впервые начал использовать некоторые методы подпроцесса, я столкнулся с некоторыми из тех же проблем.

Попробуйте запустить свой код следующим образом:

import datetime
import subprocess
import shlex

startdate = datetime.datetime(2010, 4, 9) + datetime.timedelta(days=1)
enddate = datetime.datetime(2010, 4, 10) + datetime.timedelta(days=1)
command = (
    "sudo mam-list-usagerecords -s "
    + str(startdate)
    + "-e"
    + str(enddate)
    + " --format csv --full"
)

print(command)
print(type(command))
print(shlex.split(command))
subprocess.call(shlex.split(command))

ВЫХОД:

sudo mam-list-userecords -s 2010-04-10 00: 00: 00-e2010 -04-11 00:00:00 --format csv --full

class 'str'

['sudo', 'mam-list-userecords', '-s', '2010-04-10', '00: 00: 00-e2010-04-11 ', '00: 00: 00', '--format', 'csv', '--full']

< / blockquote>

(Выход команды отредактирован.)

Когда kwarg shell установлен на False, что является значением по умолчанию, команда может быть коллекцией, которая является shlex .split делает.

аргументы должны быть последовательностью программных аргументов или одной строкой. По умолчанию программа для выполнения является первым элементом в args, если args - последовательность. Если args является строкой, интерпретация зависит от платформы и описана ниже. См. Shell и исполняемые аргументы для дополнительных отличий от поведения по умолчанию. Если не указано иное, рекомендуется передавать аргументы в виде последовательности.

Конструктор Popen

Эта проблема беспрестанно смущала меня, пока я не нашел это в документации.

0
ответ дан DMfll 27 February 2019 в 20:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: