【发布时间】:2023-01-08 03:03:09
【问题描述】:
我有一个包含许多文件的文件夹,这些文件的名称类似于 homeXXX_roomXXX_high.csv 或 homeXXX_roomXXX_low.csv,其中 XXX 部分替换为三位数。
我想使用一些代码根据文件名中“home”旁边的数字将文件移动到单独的文件夹中。例如,我想指定名称以home101、home103、home320、home553等开头的文件都应移至文件夹A,而以home555、home431、@开头的文件987654333@ 应该转到 FolderB。
到目前为止我有这段代码:
import shutil
import os
source = '/path/to/source_folder'
dest1 = '/path/to/FolderA'
dest2 = '/path/to/FolderB'
files = os.listdir(source)
for f in files:
if (f.startswith("home101") or f.startswith("home103")):
shutil.move(f, dest1)
elif (f.startswith("home431") or f.startswith("home555")):
shutil.move(f, dest2)
但是,指定所有 if 和 else 案例是乏味的。我想使用某种结构化数据(例如 list)来指定“家庭”号码组和相应的文件夹路径。我如何在 Python 中执行此操作?
【问题讨论】:
-
“有人有什么想法吗?谢谢。”欢迎来到堆栈溢出。请阅读How to Ask并注意这是不是论坛.我一直有很多想法,但没有一个与这里的问题相关。但更重要的是,那是not a question。我们在“谢谢”中也是not interested。我将尝试编辑问题以显示适当的风格,但我不确定我是否理解您希望完成的工作。
-
好吧,为了完成编辑,多看了几遍,似乎够清楚了;但是有很多方法可以做到这一点,而且无论如何都会涉及多个步骤。一般来说,我们不尝试教设计在这里,只有个别的概念。您可能会发现一个实际的讨论论坛,例如 Reddit 或 Quora,对于您正在寻求的帮助更有用。
标签: python directory file-move