У меня есть текстовый файл, который содержит следующую строкуподпроцесс вызов СЕПГ команда дает ошибку
PIXEL_SCALE 1.0 # size of pixel in arc
Для замены 1.0 в нем с 0,3 я пытался использовать СЭД через subprocess.call из питона сценария. После команды sed regex отлично работает с оболочкой.
sed -i 's/^\(PIXEL_SCALE\s*\)\([0-9]*\.[0-9]*\)/\10.3/' filename.txt
Но эквивалентная команда subprocess.call дает мне следующую ошибку.
subprocess.call(['sed','-i',"'s/^\(PIXEL_SCALE\s*\)\([0-9]*\.[0-9]*\)/\10.3/'",'filename.txt'])
sed: -e expression #1, char 1: unknown command: `''
Я попытался преобразовать строку в сырую строку с помощью префикса строки с г, а также пытался .encode («UTF-8»). Но они не имели никакого эффекта. Что здесь может быть неправильно?
Благодаря
попробовать subprocess.Popen ("СЕПГ -i 's/^ \ (PIXEL_SCALE \ s * \) \ ([0-9] * \. [0-9] * \)/\ 10,3 /' filename.txt ", shell = True") – vks