2015-10-29 2 views
0

Я бы хотел передать переменные 'first' и 'last' из моего фрагмента python в команду.Передача переменных python в команду

код 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 

Как я могу добиться этого?

+0

Значит, вы хотели бы назвать 'influx' из вашего скрипта Python? Это также написано на Python? – jonrsharpe

+0

@jonrsharpe Да, нужно вызвать его внутри скрипта python. Это написано «go». – arazx

ответ

1

Вы должны предпочтительно вызвать приток изнутри python. Для этого вы можете использовать python's 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) 
Смежные вопросы