结构化主要方法

时间:2018-07-03 19:25:43

标签: python python-2.7

我有一个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 :(得分:1)

您可以使用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)