擅长:python、mysql、java
<p>由于shell的工作方式,您实际上是在传递整个文件列表,但只使用第一个文件。这是因为shell将展开<code>*</code>字符,然后将所有<code>*.txt</code>文件传递给脚本。你知道吗</p>
<p>如果您只是在脚本中这样做:</p>
<pre><code>for i in sys.argv[1:]:
print(i)
</code></pre>
<p>您将看到您的程序应该打印的列表。为了避免这种情况,您有几个选择:</p>
<ol>
<li>引用你的论点<code>"/home/Documents/*.txt"</code></li>
<li><p>只传递扩展部分<code>python txt.py /home/Documents/.txt</code>,并在脚本中:</p>
<pre><code>def print_all(path):
path = path[:path.rfind('/')+1]+'*'+path[path.rfind('/')+1:]
for i in glob.glob(path):
print(i)
</code></pre></li>
<li><p>传递<em>两个</em>参数、路径和扩展名<code>python txt.py /home/Documents/ .txt</code>,然后将它们连接在一起:</p>
<pre><code>print_all(sys.argv[1]+'*'+sys.argv[2])
</code></pre></li>
</ol>