2

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

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

  • 目录_1
    • 文件_1
    • 文件_2
    • 子目录_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))

非常感谢你们俩!

4

1 回答 1

3

我希望这会有所帮助:

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
于 2013-08-23T10:21:37.667 回答