【发布时间】:2019-02-05 10:23:29
【问题描述】:
我正在编写一个 Python 脚本,它以日期的形式接受用户输入,例如 20180829,这将是一个子目录名称,然后它使用 os.walk 函数遍历特定目录,一旦到达该目录传入它会跳转到里面并查看其中的所有目录并在不同的位置创建一个目录结构。
我的目录结构将如下所示:
|dir1
|-----|dir2|
|-----------|dir3
|-----------|20180829
|-----------|20180828
|-----------|20180827
|-----------|20180826
所以 dir3 将有许多子文件夹,它们都是日期格式。我需要能够仅复制开始时传入的目录的目录结构,例如 20180829 并跳过其余目录。
我一直在网上寻找一种方法来做到这一点,但我只能找到从 os.walk 函数中排除目录的方法,如下面的线程: Filtering os.walk() dirs and files
我还发现了一个线程,它允许我打印出我想要的目录路径,但不会让我创建我想要的目录: Python 3.5 OS.Walk for selected folders and include their subfolders.
以下是我的代码,它打印出正确的目录结构,但在我不希望它做的新位置创建整个目录结构。
includes = '20180828'
inputpath = Desktop
outputpath = Documents
for startFilePath, dirnames, filenames in os.walk(inputpath, topdown=True):
endFilePath = os.path.join(outputpath, startFilePath)
if not os.path.isdir(endFilePath):
os.mkdir(endFilePath)
for filename in filenames:
if (includes in startFilePath):
print(includes, "+++", startFilePath)
break
【问题讨论】:
-
if (includes in startFilePath):去掉括号