Python Pexpect Нет отражения команды появления - PullRequest
0 голосов
/ 31 января 2020

Я написал Python скрипт, который входит в базу данных (WordPress, чтобы быть более точным c) и захватывает идентификаторы блога. Затем я беру pexpect (с идентификатором блога) и пытаюсь выполнить mysqldump для нескольких таблиц, связанных с блогом.

Это функции, которые я использую в настоящее время, связанные с pexpect:

def ExportSqlTable(id):
    print('mysqldump -u {} -p {}{} > /tmp/{}.sql'.format(db_user, db_database, StringTableFormatter(id), id))
    child = pexpect.spawn('mysqldump -u {} -p {}{} > /tmp/{}.sql'.format(db_user, db_database, StringTableFormatter(id), id))
    child.expect('Enter password: ')
    child.sendline(db_pass)

Я провел некоторые исследования, и некоторые предлагают использовать:

child.delaybeforesend = 0.1
child.close()
child.wait()

Однако изменение моего кода на основе предложений по-прежнему не дает желаемого результата. Я не вижу файл в папке / tmp /.

Когда я беру вручную созданную команду и проверяю ее, она работает как надо.

mysqldump -u SomeRandomUserName -p SomeRandomDatabase wp_98_commentmeta wp_98_comments wp_98_groups_capability wp_98_groups_group wp_98_groups_group_capability wp_98_groups_user_capability wp_98_groups_user_group wp_98_links wp_98_options wp_98_postmeta wp_98_posts wp_98_term_relationships wp_98_term_taxonomy wp_98_termmeta wp_98_terms > /tmp/SomeRandomFile.sql

Ожидаемая строка " Введите пароль: "(с пробелом) на Linux:

Enter password: 

Любая помощь будет отличной. Спасибо за ваше время.

...