Итерирование скрипта & amp; запись в новую строку на csv [duplicate]

Он должен быть таким же простым, как выполнение этого:

mysql -u <user> -p < db_backup.dump

Если дамп имеет одну базу данных, вам может потребоваться добавить строку вверху файла:

USE <database-name-here>;

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

Чтобы запустить эти команды, откройте командную строку (в Windows) и cd в каталог, где исполняемый файл mysql.exe (вам, возможно, придется немного поглядеть на него, это будет зависеть от того, как вы установили mysql, то есть автономно или как часть пакета, такого как WAMP). Когда вы находитесь в этом каталоге, вы должны просто набрать команду, как я ее выше.

37
задан sunshinekitty 21 May 2016 в 22:43
поделиться

6 ответов

Возможно, это может помочь: Advanced Python Scheduler

Вот небольшая часть кода из их документации:

from apscheduler.schedulers.blocking import BlockingScheduler

def some_job():
    print "Decorated job"

scheduler = BlockingScheduler()
scheduler.add_job(some_job, 'interval', hours=1)
scheduler.start()
41
ответ дан LoveGandhi 24 August 2018 в 21:23
поделиться

Стандартная библиотека Python предоставляет sched и threading для этой задачи. Но это означает, что ваш скрипт планировщика будет работать все время, а не оставлять его выполнение в ОС, что может быть или не быть тем, что вы хотите.

0
ответ дан aepsil0n 24 August 2018 в 21:23
поделиться

Для apscheduler 3.0, см. Ответ на неизвестный .

Для apscheduler> 3.0

from apscheduler.schedulers.blocking import BlockingScheduler

sched = BlockingScheduler()

@sched.scheduled_job('interval', seconds=10)
def timed_job():
    print('This job is run every 10 seconds.')

@sched.scheduled_job('cron', day_of_week='mon-fri', hour=10)
def scheduled_job():
    print('This job is run every weekday at 10am.')

sched.configure(options_from_ini_file)
sched.start()

Обновление:

apscheduler .

Это для apscheduler-3.3.1 на Python 3.6.2.

"""
Following configurations are set for the scheduler:

 - a MongoDBJobStore named “mongo”
 - an SQLAlchemyJobStore named “default” (using SQLite)
 - a ThreadPoolExecutor named “default”, with a worker count of 20
 - a ProcessPoolExecutor named “processpool”, with a worker count of 5
 - UTC as the scheduler’s timezone
 - coalescing turned off for new jobs by default
 - a default maximum instance limit of 3 for new jobs
"""

from pytz import utc
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.executors.pool import ProcessPoolExecutor

"""
Method 1:
"""
jobstores = {
    'mongo': {'type': 'mongodb'},
    'default': SQLAlchemyJobStore(url='sqlite:///jobs.sqlite')
}
executors = {
    'default': {'type': 'threadpool', 'max_workers': 20},
    'processpool': ProcessPoolExecutor(max_workers=5)
}
job_defaults = {
    'coalesce': False,
    'max_instances': 3
}

"""
Method 2 (ini format):
"""
gconfig = {
    'apscheduler.jobstores.mongo': {
        'type': 'mongodb'
    },
    'apscheduler.jobstores.default': {
        'type': 'sqlalchemy',
        'url': 'sqlite:///jobs.sqlite'
    },
    'apscheduler.executors.default': {
        'class': 'apscheduler.executors.pool:ThreadPoolExecutor',
        'max_workers': '20'
    },
    'apscheduler.executors.processpool': {
        'type': 'processpool',
        'max_workers': '5'
    },
    'apscheduler.job_defaults.coalesce': 'false',
    'apscheduler.job_defaults.max_instances': '3',
    'apscheduler.timezone': 'UTC',
}

sched_method1 = BlockingScheduler() # uses overrides from Method1
sched_method2 = BlockingScheduler() # uses same overrides from Method2 but in an ini format


@sched_method1.scheduled_job('interval', seconds=10)
def timed_job():
    print('This job is run every 10 seconds.')


@sched_method2.scheduled_job('cron', day_of_week='mon-fri', hour=10)
def scheduled_job():
    print('This job is run every weekday at 10am.')


sched_method1.configure(jobstores=jobstores, executors=executors, job_defaults=job_defaults, timezone=utc)
sched_method1.start()

sched_method2.configure(gconfig=gconfig)
sched_method2.start()
14
ответ дан Animesh Pandey 24 August 2018 в 21:23
поделиться

В версии, опубликованной sunshinekitty под названием «Версия & lt; 3.0», вам может потребоваться указать apscheduler 2.1.2. У меня случайно была версия 3 на моей установке 2.7, поэтому я пошел:

pip uninstall apscheduler
pip install apscheduler==2.1.2

После этого он работал правильно. Надеюсь, что это поможет.

1
ответ дан Arkham Angel 24 August 2018 в 21:23
поделиться

Чтобы запустить что-то каждые 10 минут после часа.

from datetime import datetime, timedelta

while 1:
    print 'Run something..'

    dt = datetime.now() + timedelta(hours=1)
    dt = dt.replace(minute=10)

    while datetime.now() < dt:
        time.sleep(1)
18
ответ дан Shane Davies 24 August 2018 в 21:23
поделиться

Один из вариантов - написать C / C ++-оболочку, которая выполняет скрипт python на регулярной основе. Ваш конечный пользователь будет запускать исполняемый файл C / C ++, который будет работать в фоновом режиме и периодически выполнять скрипт python. Это может быть не лучшее решение и может не работать, если вы не знаете C / C ++ или хотите сохранить этот 100% -ный питон. Но это похоже на самый удобный подход, поскольку люди привыкли щелкать по исполняемым файлам. Все это предполагает, что python установлен на компьютере вашего конечного пользователя.

Другой вариант - использовать cron job / Task Scheduler, но поместить его в установщик в качестве сценария, чтобы ваш конечный пользователь не должен был сделайте это.

0
ответ дан ubadub 24 August 2018 в 21:23
поделиться
Другие вопросы по тегам:

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