擅长:python、mysql、java
<p>问题是<code>></code>不是程序的命令行参数。<code>></code>,在这个上下文中,实际上是一个shell输出重定向操作符。它由shell本身处理,而不是由<code>mysqldump</code>程序处理。在</p>
<p>Python的<code>subprocess</code>对shell一无所知,因此它无法理解诸如<code>></code>之类的shell操作符。它只是试图将<code>></code>和<code>mytable.sql</code>作为参数给<code>mysqldump</code>,而{<cd3>}也无法理解,从而导致错误。在</p>
<p>您需要做的是设置子流程以重定向其输出。在Python中这样做的方法是:</p>
<pre><code>with open('mytable.sql', 'w') as f:
subprocess.call(['mysqldump',
' single-transaction',
'-u',
'myusername',
'-pmypasword',
'mydb',
'mytable'], stdout=f)
</code></pre>
<p><code>subprocess.call</code>的<code>stdout</code>参数允许您将子进程的输出定向到任何您喜欢的地方,就像<code>></code>shell操作符一样。在</p>