Структурирование основной метод - PullRequest
0 голосов
/ 03 июля 2018

У меня есть скрипт на python, который будет делать 3 вещи:

  1. проверьте, существует ли файл в каталоге
  2. копировать определенные файлы из одного каталога в другой и
  3. выполнить другой скрипт на python.

Прямо сейчас, если я запускаю скрипт, он запускает все 3 функции, независимо от того, существует ли файл в тестовой директории.

Что я хочу сделать, это проверить, существует ли файл. Если это так, скопируйте его, и как только он будет скопирован, выполните другой скрипт. У меня проблемы с поиском простого способа связать их всех вместе. Вот мой сценарий:

import os
import os.path
from os import path
import shutil


def check_file():
    file_exists = False
    for deploy_file in os.listdir("C:\\test1\\test.txt"):
        if deploy_file.startswith("test"):
            file_exists = True
        else:
            exit(1)
    print file_exists


def copy_file():
    src = "C:\\test1\\"
    dst = "C:\\test2\\"

    files = [i for i in os.listdir(src) if i.startswith("test") and path.isfile(path.join(src, i))]
    print files
    for f in files:
        shutil.copy(path.join(src, f), dst)


def run_script():
    os.system("pathofscript") # for testing its just a script that prints "hello world"


def main():
    check_file()
    copy_file()
    run_script()


main()

Таким образом, запустив это как есть, вы получите:

True
['test.txt']
"hello world"

Как я могу написать свой main() метод, чтобы делать то, что я пытаюсь сделать?

1 Ответ

0 голосов
/ 03 июля 2018

Вы можете проверить, существует ли файл с помощью оператора if, а затем запустить две другие функции. Вам придется обновить check_file(), чтобы вернуть True или False

def check_file():
    file_exists = False
    for deploy_file in os.listdir("C:\\test1\\test.txt"):
        if deploy_file.startswith("test"):
            file_exists = True
        else:
            file_exists = False
    return file_exists

Тогда вы можете использовать это в качестве основной функции

def main():
    if check_file():
        copy_file()
        run_script()
    else:
        exit(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...