2015-03-30 4 views
0

У меня есть следующий фрагмент кода в bash, который я использую для обработки файла JSON. Я хочу сделать точно такую ​​же функциональность в python. Могу ли я позвонить sed из python? Или как я могу достичь того же.Вызов `sed` изнутри программы python

for file in /home/Work/ts_parts/* 
do 
     event=$(cat $file | jq '.Event') 
     name="$(basename "$file")" 
     if [[ "$event" =~ "aaa.bbb.ccc.dddd" ]] || [[ "$event" =~ "eeee.ffff.gggg.hhhh" ]]; then 
       echo "Coming Here" 
       jq ".url = \"$(jq '.Msg' $file | sed 's/.*proxy=\([^&]*\).*/\1/')\"" $file > ts_parts/out_$name 
     else 
       jq ".url = null" $file > ts_parts/out_$name 
     fi 
     rm -f $file 
done 

ответ

0

Вы можете использовать регулярные выражения:

import re 

s = "abc proxy=123&456"     # Test string 

mat = re.search(r'proxy=([^&]*)', s) 
print(mat.group(1))      # 123 

Этот код только делает то, что делает ваш СЭД замена (извлечение). Что-нибудь еще из скрипта, который вы также должны реализовать, или напрямую вызовите программы.

+0

-для добавления нового ключевого URL-файла в данные json и сбрасывать его в файл на python? – liv2hak

+0

@ liv2hak вы захотите заглянуть в модуль ['json'] (https://docs.python.org/2/library/json.html) -' json.load', чтобы загрузить json в словарь из файла, используйте словарь, но вы хотите, а затем 'json.dump', чтобы сохранить измененный json. – jedwards

Смежные вопросы