<p>这对我很有效:</p>
<pre><code>def gaps(dire, prefix):
import os, re, shutil
folder = os.path.abspath(dire)
sablon = re.compile(r'''(%s)(\d\d\d).txt''' % prefix)
matchlist = []
for filename in os.listdir(folder):
match = sablon.match(filename)
if match:
matchlist.append(filename)
if int(match.group(2)) == len(matchlist):
continue
else:
print(filename + ' is the ' + str(len(matchlist)) + 'th file')
if len(matchlist) < 9:
print(filename + ' will be renamed: ' + prefix + '00' + str(len(matchlist)) + '.txt')
newname = prefix + '00' + str(len(matchlist)) + '.txt'
oldname = os.path.join(folder, filename)
newname = os.path.join(folder, newname)
shutil.move(oldname, newname)
elif 10 <= len(matchlist) < 100:
print(filename + ' will be renamed: ' + prefix + '0' + str(len(matchlist)) + '.txt')
newname = prefix + '0' + str(len(matchlist)) + '.txt'
oldname = os.path.join(folder, filename)
newname = os.path.join(folder, newname)
shutil.move(oldname, newname)
</code></pre>