从python scrip返回值的最佳方法

2024-04-25 01:06:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个脚本,其中包含一些文件、运行一些测试并计算总的错误数,同时为每个错误(错误+更多)编写包含信息的新文件。

要从当前工作目录中获取几个文件,请执行以下操作:

myscript.py -i input_name1 input_name2

完成这项工作后,我希望脚本“返回全部错误”,但我不确定实现此功能的最佳方法。

目前,脚本打印的内容如下:

[working directory]
[files being opened]
[completed work for file a + num_of_bugs_for_a]
[completed work for file b + num_of_bugs_for_b]
...
[work complete]

在这里,一些帮助(注释/提示/代码示例)可能会有所帮助。

顺便说一下,这需要在windows和unix上运行。


Tags: 文件ofpy目录脚本信息forinput
1条回答
网友
1楼 · 发布于 2024-04-25 01:06:33

如果您希望脚本返回值,只需从包装代码的函数中执行return [1,2,3],但是您必须从另一个脚本中导入脚本才能使用这些信息:

返回值(来自包装函数)

(同样,这必须由一个单独的Python脚本运行,并被导入,以便做任何好事):

import ...
def main():
    # calculate stuff
    return [1,2,3]

作为指示灯的出口代码

(这通常只适用于您想向调控器指示出了什么问题,或者只指示计数的bug/行数或w/e的情况。通常0是一个好的出口,>;=1是一个坏的出口,但您可以以任何方式将它们交互,以便从中获取数据)

import sys
# calculate and stuff
sys.exit(100)

然后根据你想让它告诉你的州长的内容,用一个特定的退出代码退出。 在调度和监视环境运行脚本时,我使用了退出代码来指示发生了什么。

作为你的接力棒

如果没有,你就必须使用标准输出(stdout)来与外界交流(如你所描述的)。 但这通常是一个坏主意,除非它是一个执行脚本的解析器,并且可以捕获您要向其报告的任何内容。

import sys
# calculate stuff
sys.stdout.write('Bugs: 5|Other: 10\n')
sys.stdout.flush()
sys.exit(0)

如果您在受控的调度环境中运行脚本,那么退出代码是最好的方法。

文件作为传送带

还可以选择简单地将信息写入文件,并将结果存储在其中。

# calculate
with open('finish.txt', 'wb') as fh:
    fh.write(str(5)+'\n')

并从中获取值/结果。你甚至可以用CSV格式来让其他人简单地阅读。

相关问题 更多 >