在Python中随机交换文件名

时间:2015-06-23 02:23:39

标签: python random filenames shuffle

我需要交换文件夹中所有文件的名称,但每个文件都必须拥有它自己的唯一名称。

我试图循环遍历文件夹,将所有文件添加到列表中,然后使用random.shuffle()对该列表进行洗牌,然后再次循环浏览该文件夹,但这次按顺序将每个文件重命名为洗牌列表。 / p>

这是这样的:

for file in os.listdir("images/"):
    os.rename(file, files_shuffle[i])
    i += 1

但是我得到WinError 183"当该文件已经存在时无法创建文件"。解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

问题可以很容易地说明。您有以下文件:

a.txt
b.txt

你要重命名它们:

b.txt -> a.txt
a.txt -> b.txt

但是,只要您想将b.txt重命名为a.txt,就会出现报告的问题,因为文件a.txt已存在。

您可以分两次执行该程序:

  1. 将所有文件重命名为一些唯一的名称,例如很长的数字。
  2. 将这些文件重命名为final(shuffled)名称。
  3. 如果临时名称集不与原始名称冲突,则程序是安全的。