程序化地将文件移动到子目录(不使用unix mv命令)
程序化地将文件移动到子目录(不使用unix mv命令)
这个问题已经有了答案:
使用 os.rename 或 shutil.move 可以将目录中的所有文件移动到同一个目录的子目录中吗?
例如,如果我有以下结构:
- Dir_1
- File_1
- File_2
- subDir_1
我能得到以下结构吗?
- Dir_1
- subDir_1
- File_1
- File_2
?
- subDir_1
最佳策略 -
编辑:最终我使用以下代码解决了我的问题:
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日
我希望这可以帮助:
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