【问题标题】:Looping and Searching Python循环和搜索 Python
【发布时间】:2021-05-24 07:12:50
【问题描述】:

我正在寻找在根目录的所有目录中搜索特定文件夹名称并将它们移动到目标文件夹中。我设法让它工作,但是循环将继续,直到它发现一个错误。成功移动后如何停止循环?

source = “\\\\ABCSHARE\\2020”
dest = “\\\\STORAGE\\2020”

for dirpath, dirs, files in os.walk(source):
   if “buffet” in dirpath:
      shutil.copytree(dirpath,dest)

如果dest 中存在现有文件夹,我如何捕获异常以停止循环并附加任何文件?

【问题讨论】:

  • 只用break ?此外,请查看glob(...)。文件夹名称真的有所有这些反斜杠吗?此外,它当然应该是if "buffet" in dirpath(注意其他引号)。
  • 把break in else.
  • 我做了一个休息,只是添加了 else: break。但是如果我执行代码,什么都不会发生。

标签: python python-3.x loops for-loop


【解决方案1】:

使用 break 在移动后停止迭代。

您可以添加嵌套 if 语句来检查目标中是否已存在文件夹。

【讨论】:

  • 我在 else 中休息了一下,然后什么也没发生。如何在嵌套语句中做到这一点?
  • break 需要在移动后的行中,而不是在 else 块中。就像@Mr Felix U 回答的那样。
【解决方案2】:

如果你确实找到并移动了那棵树,我猜你想打破,而不是“其他”。

source = “\\\\ABCSHARE\\2020”
dest = “\\\\STORAGE\\2020”

for dirpath, dirs, files in os.walk(source):
   if “buffet” in dirpath:
      shutil.copytree(dirpath,dest)
      break

【讨论】:

  • 谢谢,但我也试过这种方式。插入中断后,脚本没有以某种方式执行
猜你喜欢
  • 1970-01-01
  • 2016-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-06
  • 1970-01-01
  • 2021-05-05
  • 2021-05-01
相关资源
最近更新 更多