2

私はメモリに次のパスを持っています:

video_path = u'C:\\Documents and Settings\\user\\My Documents\\Downloads\\\xf5iv - Neon Phoenix [Free DL].mp3'

cmdのパラメータとして使用しようとしているので、エンコードする必要があります。

video_path = video_path.encode(sys.getfilesystemencoding())
cmd = 'ffmpeg -y -i "%s" -vn -ac 2 -f mp3 audio.mp3' % video_path
subprocess.Popen(cmd)

ただし、文字列は正しい方法でエンコードされていません。 をではなく に変換\xf5します。したがって、ファイルが見つかりませんでした。?õ

これはどのように起こりますか?デフォルトのファイルシステム エンコーディング (mbcs) を使用しています。

4

3 に答える 3

0

UTF-8を使用してエンコードしてみてください。

video_path = video_path.encode("utf-8")
于 2012-04-23T21:53:11.897 に答える
0

私が完全に間違っていない限り、二重のバックスラッシュ

video_path = u'C:...\\xf5iv...'

問題を引き起こします。存在するのは 1 つだけです。

video_path = u'C:...\xf5iv...'

それ以外の場合、バックスラッシュはバックスラッシュとして保持され、処理するためos.system()に ではなくに残され.encode()ます。

于 2012-04-24T03:44:42.083 に答える