Я использовал файл reporter.jar от Apple для извлечения данных о продажах, используя приведенную ниже команду, которая работает правильно, добавляя имя пользователя и пароль в качестве ввода после выполнения команды.
java -jar Reporter.jar p=Reporter.properties Sales.viewToken
Теперь я хочу автоматизировать это, используя python. Я попробовал ниже коды, но ни один из них не работал. на самом деле он не позволяет / не может отправлять ввод имени пользователя и пароля.
Примечание: после выполнения вышеупомянутой команды она запрашивает имя пользователя и пароль в качестве маскируемого ввода.
Коды, которые я пробовал.
1.
args = ['java','-jar','Reporter.jar','p=Reporter.properties','Sales.viewToken']
proc = subprocess.Popen(args ,stdin=subprocess.PIPE, stderr=subprocess.PIPE,universal_newlines=True, shell=True)
stdout, stderr = proc.communicate(input=os.linesep.join([usr, pwd + os.linesep]))
print('stdout - ',stdout)
print('stderr - ',stderr)
print ('Code Run Completed')
2.
args = ['java','-jar','Reporter.jar','p=Reporter.properties','Sales.viewToken']
proc = subprocess.Popen(args ,stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.stdin.write(cmt.encode('utf-8')) ##The b prefix is necessary because it needs a byte type
proc.stdin.close()
stdout, stderr = proc.communicate()
print('stdout - ',stdout)
print('stderr - ',stderr)
print ('Code Run Completed')
, когда приведенный выше код выполняется, он возвращает ноль. Тот же вывод генерируется, когда мы не передаем имя пользователя и пароль в файл reporter.jar. Что я делаю не так. Почему код не может отправить имя пользователя и пароль после выполнения команды.
Небольшая помощь будет оценена.
Reporter.jar Link = https://help.apple.com/itc/contentreporterguide/en.lproj/static.html