use substring_index, в приведенном ниже примере я создал таблицу со столбцом score1 и score2, score1 имеет 3-7, score2 7-3 и т. д., как показано на изображении. Следующий запрос способен разделить с помощью «-» и изменить порядок оценки2 и сравнить с score1
SELECT CONCAT(SUBSTRING_INDEX(score1,'-',1),
SUBSTRING_INDEX(score1,'-',-1)) as my_score1,
CONCAT(SUBSTRING_INDEX(score2,'-',-1),SUBSTRING_INDEX(score2,'-',1)) as my_score2
FROM test HAVING my_score1=my_score2
Использовать subprocess.Popen:
import subprocess
process = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE)
out, err = process.communicate()
print(out)
Обратите внимание, что связывают блоки до тех пор, пока процесс не завершится. Вы можете использовать process.stdout.readline (), если вам нужен выход до его завершения. Для получения дополнительной информации см. Документацию .
Для Python> = 2.7 используйте subprocess.check_output()
.
http://docs.python.org/2/library/subprocess.html#subprocess.check_output
Чтобы ловить ошибки с помощью subprocess.check_output()
, вы можете использовать CalledProcessError
. Если вы хотите использовать вывод в виде строки, декодируйте его из байт-кода.
# \return String of the output, stripped from whitespace at right side; or None on failure.
def runls():
import subprocess
try:
byteOutput = subprocess.check_output(['ls', '-a'], timeout=2)
return byteOutput.decode('UTF-8').rstrip()
except subprocess.CalledProcessError as e:
print("Error in ls -a:\n", e.output)
return None
subprocess
версии Python 2.7 является: docs.python.org/library/… ; для Python 3.2, docs.python.org/py3k/library/… – Ned Deily 12 July 2011 в 00:09out
, ноerr
будет неинициализирован, а выход ошибки будет напечатан на экране. Вы должны указатьstderr=subprocess.PIPE
в дополнение кstdout
, чтобы получить стандартную ошибку. – Griddo 20 August 2014 в 20:09