2017-09-06 2 views
0

私は次のことを行いPythonでスクリプトを持っている:XMLファイルのフォルダの (各ファイルはドキュメントルートを欠い):python、subprocess、open fileのどちらが優れていて、行単位で表示されますか?

  • は、ソースファイルの最初の7行を読んで、彼らと彼らと何もしないし、ラインバイ行くXMLタグ&オープニングDOCROOT/ 親タグ
  • まだ8行目で、ソースファイルを読んでいる間に開始する(別のディレクトリにある)新しいファイルを書く
  • 「出力にはならない」する必要があります行と同じ新しいファイルを追加する
  • クローズを追加ドキュメントルート/親タグの新しいファイルの末尾にJohn Machin Feb 1 2011

から インスピレーションI bashを使用して同様のソリューションを持っており、sedの。 プロジェクトのスポンサーは、AWS Lambdaによってスクリプトが呼び出されるようにしています。そのため、スクリプトの言語としてPythonに傾いています。

私はパフォーマンスの向上とスケーリングを探しています(ソースファイルのサイズは2 MBから241 MBの範囲であり、将来的には大きくなる可能性があります)。 Pure Pythonソリューションに固執するか、Pythonを使用する方が良いですか?subprocessモジュールを使用してsedルーチンを呼び出すか、bashスクリプトを実行しますか?ありがとう。

+1

純粋なpythonは統合とデバッグが簡単ですが、生のテキスト検索と置換はコンパイルされた 'sed'よりも遅くなる可能性があります。私はそれを 'bash'にまで拡張しないでしょう。 –

+0

@ Jean-FrançoisFabreありがとうございますが、私はあなたが 'sed'と' extend to bash'という言葉に従うのかどうか分からないのですか?サブプロセスのオブジェクトを使用してsedコマンドを呼び出し、bashスクリプトを呼び出すためにサブプロセスを使用しないことをお勧めしますか? –

+1

パフォーマンスを最大限にするためにsedを使用することをお勧めしますが、回避することができればbashを使用してコマンドを書き込むのではなく、sedのようなコンパイル済みのコマンドをPythonのネイティブスクリプトにチェーンします。 bashは必要ありません。 –

答えて

0

Jean-François Fabreのアドバイスでは、私はsubprocess.call()を使用しました。あなたの助けをもう一度おねがいします。

関連する問題