擅长:python、mysql、java
<p>从答案<a href="https://stackoverflow.com/questions/1910275/unicode-filenames-on-windows-with-python-subprocess-popen">here</a>:</p>
<blockquote>
<p>In Py3K - at least from "Python" 3.2 - subprocess.Popen and sys.argv
work consistently with (default unicode) str's on Windows.
CreateProcessW and GetCommandLineW are used obviously.</p>
<p>In Python - up to v2.7.2 at least - subprocess.Popen is buggy with
unicode arguments. It sticks to CreateProcessA (while os.* are
consistent with unicode). And shlex.split creates additional nonsense.
Pywin32's win32process.CreateProcess also doesn't auto-switch to the W
version, nor is there a win32process.CreateProcessW. Same with
GetCommandLine. Thus ctypes.windll.kernel32.CreateProcessW... needs to
be used. The subprocess module perhaps should be fixed regarding this
issue.</p>
</blockquote>
<p>因此,<code>subprocess.Popen</code>无法在python2.x版本中处理unicode。在</p>
<p>我的解决方案是将输入文件重命名为随机的(使用支持unicode的<code>os.rename</code>),用我用<code>subprocess.Popen</code>启动的<code>ffmpeg</code>进行转换,然后重新命名。在</p>