将 python 个变量传递到命令中
Pass python variables into a command
我想将 python 代码段中的变量 'first' 和 'last' 传递到命令中。
Python代码:
import csv
import dateutil.parser
with open('run.csv') as f:
reader = csv.reader(f)
first = dateutil.parser.parse(reader.next()[3])
for row in reader:
pass
last = dateutil.parser.parse(row[3])
命令:
$ influx -execute="SELECT MEAN(value) FROM cpu_value WHERE time >= first and time <= last GROUP BY type,type_instance" -database=collectd -format=csv -pretty=true
我怎样才能做到这一点?
您最好在 python 内调用 influx。
为此,您可以使用 python 的 subprocess.check_call
。参见 here
import csv
import dateutil.parser
import subprocess
with open('run.csv') as f:
reader = csv.reader(f)
first = dateutil.parser.parse(reader.next()[3])
for row in reader:
pass
last = dateutil.parser.parse(row[3])
print (first,last)
command = "/opt/influxdb/influx -execute=\"SELECT MEAN(value) FROM cpu_value WHERE time >= {0} and time <= {1} GROUP BY type,type_instance\" -database=collectd -format=csv -pretty=true".format(first, last)subprocess.check_call(command, shell=True)
我想将 python 代码段中的变量 'first' 和 'last' 传递到命令中。
Python代码:
import csv
import dateutil.parser
with open('run.csv') as f:
reader = csv.reader(f)
first = dateutil.parser.parse(reader.next()[3])
for row in reader:
pass
last = dateutil.parser.parse(row[3])
命令:
$ influx -execute="SELECT MEAN(value) FROM cpu_value WHERE time >= first and time <= last GROUP BY type,type_instance" -database=collectd -format=csv -pretty=true
我怎样才能做到这一点?
您最好在 python 内调用 influx。
为此,您可以使用 python 的 subprocess.check_call
。参见 here
import csv
import dateutil.parser
import subprocess
with open('run.csv') as f:
reader = csv.reader(f)
first = dateutil.parser.parse(reader.next()[3])
for row in reader:
pass
last = dateutil.parser.parse(row[3])
print (first,last)
command = "/opt/influxdb/influx -execute=\"SELECT MEAN(value) FROM cpu_value WHERE time >= {0} and time <= {1} GROUP BY type,type_instance\" -database=collectd -format=csv -pretty=true".format(first, last)subprocess.check_call(command, shell=True)