擅长:python、mysql、java
<p>regex可能正在工作,但是如果您正在寻找一个公共前缀,那么您可以使用<code>str.startswith</code>函数:</p>
<pre><code>files = [filename for filename in os.listdir(folder) if filename.startswith('spam')]
</code></pre>
<p>然后要找到数字,你可以去掉前缀和文件扩展名(不确定这一步是否必要,为什么需要旧的数字?)公司名称:</p>
^{pr2}$
<p>要用前导零填充小数字,您可以使用<code>{:0>3}.format</code>,例如,请参见:</p>
<pre><code>>>> '{:0>3}'.format(2)
002
</code></pre>
<p>因此,与其使用<code>prefix + str(i+1) + '.txt'</code>和变体,不如将其简化为:</p>
<pre><code>newfilenames = ['spam{:0>3}.txt'.format(number+1) for number in range(len(files))]
</code></pre>
<p>假设您在创建数字之前<code>sort</code>您的文件现在有一个旧名称和新名称的列表,您可以通过迭代来重命名它们:</p>
<pre><code>for oldname, newname in zip(files, newfilenames):
shutil.copy(oldname, newname)
os.unlink(oldname)
</code></pre>