首页 > 解决方案 > 我应该如何组织大部分相同的脚本?

问题描述

所以我是 Python 新手,我需要一些帮助来改善我的生活。我学习 Python 是为了工作,需要减少一点工作量。我有三个不同的脚本,我一直同时运行大约 5 个副本,它们读取 XML 数据并添加信息等...但是,当我更改脚本时,我必须更改其他 5 个文件太烦人了。我不能只运行相同的脚本 5 次,因为每个文件都需要一些不同的参数,我在每个脚本的开头将这些参数存储为变量(不同的文件路径......)。

但我敢肯定那里有更好的方法吗?

一个非常小的例子:

script1.py

xml.open('c:\file1.xls')
while True:
    do script...


script2.py

xml.open('c:\file2.xls')
while True:
    do exactley the same script...

etc...

标签: python

解决方案


你会想了解 Python 函数和模块。

函数是您问题的解决方案:它捆绑了一些功能并允许您调用它来运行它,只是作为参数传递的细微差别:

def do_something_with_my_sheet(name):
    xml.open(name)
    while True:
        do script...

在脚本的其他地方,您可以调用该函数:

do_something_with_my_sheet('c:\file1.xls')

现在,如果您想从多个其他脚本中使用相同的函数,您可以将该函数放在一个模块中并从两个脚本中导入它。例如:

这是my_module.py

def do_something_with_my_sheet(name):
    xml.open(name)
    while True:
        do script...

这是script1.py

import my_module

my_module.do_something_with_my_sheet('c:\file1.xls')

这可能是script2.py(显示不同的导入方式):

from my_module import do_something_with_my_sheet

do_something_with_my_sheet('c:\file2.xls')

请注意,上面的示例假设您将所有内容都放在一个文件夹中,所有脚本都放在一个位置。您可以通过将模块放在一个包中来分离内容以便于重用,但这超出了此答案的范围 - 如果您好奇,请查看它。


推荐阅读