擅长:python、mysql、java
<p>你的代码中有一些奇怪的东西。例如,文件的源是完整路径,但要重命名的目标只是一个文件名,因此文件将显示在工作目录中的任何位置—这可能不是您想要的。</p>
<p>对于两个随机生成的相同文件名,您没有任何保护,因此您可以通过这种方式销毁一些数据。</p>
<p>试试这个,它可以帮助你发现任何问题。这将只重命名文件,并跳过子目录。</p>
<pre><code>import os
import random
import string
directory = "C:\\whatever"
alphabet = string.ascii_lowercase
for item in os.listdir(directory):
old_fn = os.path.join(directory, item)
new_fn = ''.join(random.sample(alphabet, random.randint(5,15)))
new_fn += os.path.splitext(old_fn)[1] #adds file extension
if os.path.isfile(old_fn) and not os.path.exists(new_fn):
os.rename(path, os.path.join(directory, new_fn))
else:
print 'error renaming {} -> {}'.format(old_fn, new_fn)
</code></pre>