如何在python中将文件移动到随机位置(可跟踪)

如何在python中将文件移动到随机位置(可跟踪),python,Python,我正在尝试将文件从包含大量文件的文件夹移动到不同但随机的位置。 我试图找到一种方法来跟踪每个文件的移动位置,或者使其在任何情况下都可以复制。 这是我将文件移动到随机目标的代码,但是如何控制每个文件的去向呢?设置一个随机种子是解决方案吗? 代码: 这是一个合理的问题,不应主观地加以解决。 几个小时前,我正在处理一个包含80000个json文件的文件夹,并对它的数据进行了大量操作,结果出现了一个内存错误。因此,我创建了10个文件夹,每个文件夹包含8000个文件,并设法解决了每个文件夹中8000个文件

我正在尝试将文件从包含大量文件的文件夹移动到不同但随机的位置。 我试图找到一种方法来跟踪每个文件的移动位置,或者使其在任何情况下都可以复制。 这是我将文件移动到随机目标的代码,但是如何控制每个文件的去向呢?设置一个随机种子是解决方案吗? 代码:

这是一个合理的问题,不应主观地加以解决。
几个小时前,我正在处理一个包含80000个json文件的文件夹,并对它的数据进行了大量操作,结果出现了一个内存错误。因此,我创建了10个文件夹,每个文件夹包含8000个文件,并设法解决了每个文件夹中8000个文件的问题。我按升序移动了这些文件,但如果我想将它们随机移动到我创建的10个文件夹中的任何一个,那么这将是一个解决方案。

我不知道您为什么要这样做

但是

import os
import random
import shutil
import numpy as np
from collections import defaultdict

root_dir = 'C:\\Users\\name.lastname\\'
locations = ['Documents','Desktop','Downloads','Music','Pictures','Videos']
cwd = os.getcwd()

files = os.listdir(cwd)
file_history = defaultdict(list)
file_history.update({file: cwd for file in files})  # Mark all files as having been in the CWD first

for file in files:
    new_path = os.path.join(root_dir, np.random.choice(locations))

    file_history[file] += new_path

    shutil.move(os.path.join(cwd, file),
                os.path.join(new_path, file))
这应该在文件历史记录中存储每个文件的移动,该历史记录是由每个文件名键入的字典。如果要保留此内容,请确保在脚本终止之前将其保存到文件中


另外,我不知道这是否没有bug,因为我不打算在我的机器上运行它。

您对此有什么使用案例?我正试图找到一个合理的理由让人们这么做。@EdCottrell会毁掉别人的生活。@d_kennetz它似乎很适合这个任务。我和一个朋友正在学习和玩基于python的恶作剧,为了公平起见,我正试图跟踪每个文件的去向,以便更容易地恢复它。我已经在我的电脑上试过了,我分享的代码确实会随机出现,但我希望能够保持可追踪性,以确保不会造成伤害。而且,如果你问我,毁掉别人的生活有点牵强。我只是找到了一个理由。事实上,它有一个解释。几个小时前,我正在处理一个包含80000个json文件的文件夹,并对它的数据进行了大量操作,结果出现了一个内存错误。因此,我创建了10个文件夹,每个文件夹包含8000个文件,并设法解决了每个文件夹中8000个文件的问题。我按升序移动了这些文件,但如果我想将它们随机移动到我创建的10个文件夹中的任何一个,那么这就是解决方案。谢谢,我会在我的电脑上尝试,我不介意。我不知道为什么人们否决了我的问题。我觉得他们对我的问题不公平,我不是在要求伤害别人。如果没有bug,我会告诉你:哈!这将从另一个目录中移动文件,事实上这是一个重要的目录!但它确实打印出了目的地,所以不管怎样。。。我现在把它们一点一点地移回去。打得好。
import os
import random
import shutil
import numpy as np
from collections import defaultdict

root_dir = 'C:\\Users\\name.lastname\\'
locations = ['Documents','Desktop','Downloads','Music','Pictures','Videos']
cwd = os.getcwd()

files = os.listdir(cwd)
file_history = defaultdict(list)
file_history.update({file: cwd for file in files})  # Mark all files as having been in the CWD first

for file in files:
    new_path = os.path.join(root_dir, np.random.choice(locations))

    file_history[file] += new_path

    shutil.move(os.path.join(cwd, file),
                os.path.join(new_path, file))