程序化地将文件移动到子目录(不使用unix mv命令)

16 浏览
0 Comments

程序化地将文件移动到子目录(不使用unix mv命令)

这个问题已经有了答案:

如何在Python中移动文件?

使用 os.rename 或 shutil.move 可以将目录中的所有文件移动到同一个目录的子目录中吗?

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

  • Dir_1

    • File_1
    • File_2
    • subDir_1

我能得到以下结构吗?

  • Dir_1

    • subDir_1

      • File_1
      • File_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))

非常感谢你们两个!

admin 更改状态以发布 2023年5月19日
0
0 Comments

我希望这可以帮助:

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))

我用这个文件系统树试过,它工作正常:

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

0