gpt4 book ai didi

python - 在python中执行时间段

转载 作者:太空宇宙 更新时间:2023-11-04 10:32:14 24 4
gpt4 key购买 nike

我想通过发送时间段在 shell 中运行脚本

./test.py 20160830000 201608311100

如何为以下 python 脚本执行此操作?st 是 UNIX 时间戳。

#!/usr/bin/python
import requests
from pprint import pprint
import json
import os
import commands
i = commands.getstatusoutput('date -d "2016-08-30" "+%s"')
j = commands.getstatusoutput('date -d "2016-08-31" "+%s"')
s = int(i[1])
t = int(j[1])
url = 'http://192.168.1.96/zabbix/api_jsonrpc.php'
payload = {
"jsonrpc": "2.0",
"method": "history.get",
"params": {
"output": "extend",
"history": 0,
"time_from": s,
"time_till": t,
"hostsids": "10105",
"itemids": "23688",
"sortfield": "clock",
"sortorder": "DESC"
},
"auth": "b5f1f71d91146fcc2980e83e8aacd637",
"id": 1
}

header = {
'content-type': 'application/json-rpc',
}
res = requests.post(url, data=json.dumps(payload, indent=True), headers=header)
res = res.json()
pprint(res)

最佳答案

如果我理解正确,您想从命令行参数获取时间戳以在 jsonrpc 调用中使用,而不是使用硬编码日期(出于某种原因您也在通过命令行处理 date 使用已弃用的 commands 模块,而不是使用 Python 的内置 timedatetime 模块,它们可以本地处理时间戳和日期)。

这很容易。 Python 脚本的命令行参数存储在列表 sys.argv 中。列表中的第一个值是脚本的文件名,其余是参数。您可能需要检查它们的数量是否符合预期!

尝试这样的事情:

# your other imports here
import sys

USAGE_MSG = "Usage: test.py START_TIMESTAMP END_TIMESTAMP"
if len(sys.argv) != 3:
print(USAGE_MSG)
sys.exit(1)

try:
s = int(sys.argv[1])
t = int(sys.argv[2])
except TypeError: # couldn't convert one of the timestamps to int
print("Invalid timestamp")
print(USAGE_MSG)
sys.exit(1)

# the rest of your code can go here

有很多替代方法可以处理错误检查,我只是为这个例子做了一些改进。您当然应该使用最适合您需求的任何东西。

关于python - 在python中执行时间段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39304472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com