Python – используя подпроцесс для вызова sed?

Я хочу вызвать sed из python с помощью подпроцесса. Сценарий, который я пытался использовать, приведен ниже. однако это приводит к выводу sed на стандартный терминал. Похоже, что оператор '>' не распознается из моего оператора subprocess.call. Какие-либо предложения?

import sys import os import subprocess files = os.listdir(sys.argv[1]) count = 0 for f in files: count += 1 inp = sys.argv[1] + f outp = '../' + str(count) + '.txt' sub = subprocess.call(['sed', 's/\"//g', inp, '>', outp]) 

Кроме того, в моих именах файлов есть пробелы, то есть «file1 .txt». Может ли это быть проблемой? Моя команда sed отлично работает, когда я вызываю sed с терминала, только не из сценария.

Благодарю.

использование

 out_file = open(outp, "w") sub = subprocess.call(['sed', 's/\"//g', inp], stdout=out_file ) 

Было бы намного быстрее пропустить все sed-процессы и просто выполнить работу в Python

 import os import sys files = os.listdir(sys.argv[1]) for count, f in enumerate(files): with open( os.path.join(sys.argv[1],f), "r" ) as source: with open( os.path.join('..',str(count)+'.txt'), "w" ) as target: data= source.read() changed= source.replace('"','') target.write( changed ) 

Это будет работать значительно быстрее, так как оно не будет вызывать много подпроцессов.