擅长:python、mysql、java
<blockquote>
<p>"C:\Report1\2011-03-14.txt" isn't the same as the path C:\Report1\2011-03-14.txt. It's actually some bytestring, 'C:\Report1\x811-03-14.txt'. Strangely enough it doesn't sound like this is your issue, but it might be related. r"C:\Report1\2011-03-14.txt" fixes this.</p>
<p>But be aware that double backslashes in the printed representation doesn't necessarily mean that there are actually two backslashes. '\' is a Python string of length 1.</p>
</blockquote>
<p>你试过了吗:</p>
<pre><code>from subprocess import Popen, PIPE
k = Popen(r'python parser.py -f "C:\Report1\2011-03-14.txt"',
shell=True,
stdout=PIPE,
stderr=STDOUT)
print k.communicate()
</code></pre>
<p>我发现,在通过Popen在命令行上传递参数时,将参数括在双引号中是使其正常工作的唯一可靠方法。我也不总是信任调用Popen的list方法,通常我自己形成命令。还要注意原始指示器(r'')。</p>