いくつかの引数にMEncoderでを呼び出すためのPythonを使用しました

StackOverflow https://stackoverflow.com/questions/1090503

  •  11-09-2019
  •  | 
  •  

質問

私は、私は、Pythonに非常に、非常に新しいですと言ってから始めましょう。

私はそれらを毎回入力することなく、パラメータの右のセットでMEncoderでを起動するには、Windows / DOSバッチファイルを持っていた。

私は私のスクリプトを改善しようとしたとき、物事は厄介だ、と私はPythonで何かをコーディングしようとする良い機会になることを決めます。

私はそれを作ってみた:

#!/usr/bin/python
import sys, os

#Path to mencoder
mencoder = "C:\Program Files\MPlayer-1.0rc2\mencoder.exe"
infile = "holidays.avi"
outfile = "holidays (part1).avi"
startTime = "00:48:00"
length = "00:00:15"

commande = "%s %s -ovc copy -oac copy -ss %s -endpos %s -o %s"
os.system(commande % (mencoder, infile, startTime, length, outfile))

#Pause
raw_input() 

しかし、それは動作しません、Windowsは "C:\プログラムは" と文句を言います。コマンドは認識されていません。

私はいくつかの「\」」あちこちを入れしようとしましたが、それは助けにはならなかった。

役に立ちましたか?

解決

Pythonは、引用符の2種類を持っている」と「彼らは完全に等しい文字列に引用符を取得するので、最も簡単な方法はと言うことです。 『『C:』』 mencoder.exe \ \プログラムファイル\のMPlayer-1.0rc2。

生のプレフィックス(すなわち、R「『C:\プログラムファイル\のMPlayer-1.0rc2 mencoder.exe \は』」)の使用バックスラッシュのいずれもが続くされていないとして、良いアイデアですが、それはここではエラーではありませんエスケープコードである手紙。だからあなたの元の文字列には、その前にRを持つことによって全く変わりません。

他のヒント

Windows上で実行している場合、

1つではなく、2つの引用符を使用しています。

"\\"

私は、Pythonに新たなんだけど、私はそれを修正するために、その問題を参照してください今まで、ファイル(実行可能ファイルまたは引数)は引用符で囲む必要がありますとき、私は知っています。直前に、それは、コマンドライン引数を区別するためにスペースが含まれている任意のファイルの後に "\ に追加します。だから、同様にあなたのoutfileの変数に適用される。コードは次のようになります。..ます。

#!/usr/bin/python
import sys, os

#Path to mencoder
mencoder = "\"C:\Program Files\MPlayer-1.0rc2\mencoder.exe\""
infile = "holidays.avi"
outfile = "\"holidays (part1).avi\""
startTime = "00:48:00"
length = "00:00:15"

commande = "%s %s -ovc copy -oac copy -ss %s -endpos %s -o %s"
os.system(commande % (mencoder, infile, startTime, length, outfile))

#Pause
raw_input()

あなたも、それが名前(プログラムファイルではなく)だ内部の空間の文字を持っていないディレクトリにmencoder.exeを置くことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top