【问题标题】:Find a directory in a list of directories containing a portion of a string using python使用python在包含部分字符串的目录列表中查找目录
【发布时间】:2020-08-05 22:47:31
【问题描述】:

我的第一篇文章,我对编程比较陌生,所以请耐心等待。我已经搜索了很多其他人试图解决这个问题,但我找不到像我这样的具体案例。

如果我有一个包含一堆子目录的目录,并且我想找到一个名称包含我要查找的部分文本的特定目录,我希望能够将该目录移动到另一个目录。

例如,我有以下目录

  • c:/users/bob/folders/folder123
  • c:/users/bob/folders/folder456
  • c:/users/bob/folders/folder789
  • c:/users/bob/folders/folder0

我问用户“你在找什么字符串?”。假设用户告诉我他们正在寻找字符串“123”。我希望能够找到一个包含该文本的文件夹,然后将该文件夹及其所有内容移动到一个新目录。

从用户那里获取输入显然很容易

print('What is the rev number?') #ask the user for the rev number
revNumber = input()

现在我需要将该变量传递到一些代码中,该代码在特定目录中搜​​索包含该文本的文件夹。找到文件夹后,如何移动它?我知道如何使用 shutil.move 移动单个文件,并且想知道它是否也可以用于移动整个文件夹及其所有内容。

提前非常感谢。

【问题讨论】:

    标签: python windows search directory subdirectory


    【解决方案1】:

    您可以使用os 包创建目录,然后使用shutil 复制内容。请注意,使用 os,您可以使用“walk()”遍历整个目录层次结构。查看文档。

    不过,Shutil 也可以移动目录。

    然后要在另一个字符串中搜索特定字符串,您可以使用“in”关键字,如果找到该字符串,则返回 true:

    # Example path
    path = path/to/folder/file6854.jpg
    
    # String to look for
    to_find = "854"
    
    if to_find in path:
      # Do something
    

    【讨论】:

    • 谢谢@Louis 在等待回复时,我只是做了很多工作试图弄清楚这一点,并遇到了完成创建列表和扫描目录的 os.scandir 函数(方法?)对于文件夹。然后,我使用您的相同技术在列表中搜索特定字符串。我还可以使用 shutil.move 函数来移动我想要的文件夹。现在我只是想弄清楚如何将它移动到特定的子目录。编程很难大声笑
    猜你喜欢
    • 2018-10-12
    • 2019-11-02
    • 2013-07-06
    • 2017-03-16
    • 2021-06-04
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多