【发布时间】:2017-08-26 11:25:26
【问题描述】:
大家好,我是 python 的新手,而且堆栈溢出,所以如果我问一个愚蠢的问题,我很抱歉。
这就是我想要做的,我的电脑中有很多游戏放在随机文件夹中,例如:一个游戏在 G:\test1\folder1\gamename 另一个游戏在G:\test1\folder2\gamename 等。我要做的是使用 os.walk 扫描整个 G:\test1 目录> 如果 .exe 文件存在于任何文件夹中,我希望将存在该 .exe 文件的整个树(使用该文件夹的名称)移动到 G:\test1\Games 目录。我使用 shutil.copytree () 来执行此操作,它工作正常,但我没有在目标中获取游戏名称文件夹
Ex : 如果源目录是 G:\test1\limbo 目标目录是 G:\test1\games 我将所有内容复制到文件夹 G:\test1\games\[这里]。但我希望内容转到 G:\test1\games\limbo\[这里]
import os, shutil
src = "G:\\test1"
dst = src+"\\games"
os.chdir(src)
for i, j, k in os.walk(src):
for h in k:
if h.endswith(".exe"):
shutil.copytree(i, dst)
提前致谢
【问题讨论】:
-
你能贴一些你正在执行写操作的源代码吗?
-
我已经更新了,请检查
-
@ChandreshGS 你的代码引发了
NameError。 -
尝试在您的
dst中的games末尾添加另一个\ -
您的示例中仍有很多错误。导入前的空格,大写 I 而不是更明智的不要混用的东西,字母 l 而不是大写 I,chdir() 在这个例子中是完全没有必要的,无论如何也不会被导入。它必须是 os.chdir(src)。此外,您错过了 if 块的中断。如果您不退出循环,则将与遇到的每个 .exe 一起复制相同的目录。那么,如果一个游戏有 5 个 exe 呢?
标签: python python-3.x