从python脚本返回值的最佳方法 - python

我用python编写了一个脚本,该脚本需要几个文件,运行一些测试并计算total_bugs的数量,同时编写包含每个文件的信息的新文件(bugs +更多)。

要从当前工作目录中获取几个文件:

myscript.py -i输入名称1输入名称2

完成该工作后,我希望脚本“返回total_bugs”,但我不确定实现此目标的最佳方法。

目前,该脚本可打印以下内容:

[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下工作。

参考方案

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

返回值(来自包装函数)

(同样,这必须由单独的Python脚本运行并导入才能发挥任何作用):

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

退出代码作为指标

(通常,这对于您要向州长指出出了什么问题,或者只是要计算的错误/行数或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格式进行操作,以供他人简单阅读。

在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…

Python exchangelib在子文件夹中读取邮件 - python

我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…

python JSON对象必须是str,bytes或bytearray,而不是'dict - python

在Python 3中,要加载以前保存的json,如下所示:json.dumps(dictionary)输出是这样的{"('Hello',)": 6, "('Hi',)": 5}当我使用json.loads({"('Hello',)": 6,…

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

Python:图像处理可产生皱纹纸效果 - python

也许很难描述我的问题。我正在寻找Python中的算法,以在带有某些文本的白色图像上创建皱纹纸效果。我的第一个尝试是在带有文字的图像上添加一些真实的皱纹纸图像(具有透明度)。看起来不错,但副作用是文本没有真正起皱。所以我正在寻找更好的解决方案,有什么想法吗?谢谢 参考方案 除了使用透明性之外,假设您有两张相同尺寸的图像,一张在皱纹纸上明亮,一张在白色背景上有深…