【问题标题】:Moving files to subdirectory programatically (without using unix mv command) [duplicate]以编程方式将文件移动到子目录(不使用 unix mv 命令)[重复]
【发布时间】:2013-08-26 07:41:38
【问题描述】:

是否可以通过os.rename或shutil.move将一个目录下的所有文件移动到同一目录下的a子目录下?

例如,如果我有以下结构:

  • 目录_1
    • 文件_1
    • 文件_2
    • subDir_1

我可以得到以下结构吗:

  • 目录_1
    • 子目录_1
      • 文件_1
      • 文件_2 ?

最好的。-

编辑:最后我使用以下代码解决了我的问题:

    for fname in os.listdir(src):
      if os.path.isfile(os.path.join(src, fname)):
        os.rename(os.path.join(src, fname), os.path.join(dst, fname))

非常感谢你们!

【问题讨论】:

标签: python rename shutil


【解决方案1】:

我希望这会有所帮助:

import shutil,os,os.path


def walk(top):
    directory = None
    for root, dirs, files in os.walk(top, topdown=False):
        for name in dirs:
            directory = os.path.join(root, name)
        for name in files:
            f1 = os.path.join(root, name)
            if not f1.endswith('.py') and directory:
                shutil.move(f1,directory)


walk(os.path.realpath(os.curdir))

我用这个 fs 树试过了,它可以工作:

-d/
  |-s/
  |-new file.txt
  |-new file1.txt
  |-move.py

【讨论】:

    猜你喜欢
    • 2021-01-24
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 2012-12-07
    相关资源
    最近更新 更多