Python – usando subproceso para llamar a sed?

Deseo llamar a sed desde python utilizando subproceso. El script que intenté usar está abajo. sin embargo, esto canaliza la salida de sed al terminal estándar. Parece que el operador ‘>’ no se reconoce dentro de mi statement subprocess.call. ¿Alguna sugerencia?

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]) 

Además, mis nombres de archivo tienen espacios en ellos, es decir, “file1 .txt”. ¿Podría ser éste el problema? Mi comando sed funciona bien cuando llamo a sed desde el terminal, pero no desde el script.

Gracias.

Utilizar

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

Sería mucho más rápido omitir la ejecución de todos los procesos sed y simplemente hacer el trabajo en 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 ) 

Esto se ejecutará considerablemente más rápido, ya que no contendrá muchos subprocesos.