我的目录包含几个文件夹,每个文件夹都有自己的几个子目录。我需要将所有包含“ Volume.csv”的文件移动到名为Volume的目录中。
Folder1
|---1Area.csv
|---1Circumf.csv
|---1Volume.csv
Folder2
|---2Area.csv
|---2Circumf.csv
|---2Volume.csv
Volume
我正在尝试os.walk和regex的组合来按文件名检索文件,但运气不佳。
有任何想法吗?
谢谢!
Sunworshipper,谢谢您的回答!
我运行了以下代码,它移动了整个目录,而不仅仅是包含“卷”的文件名。清楚为什么会这样吗?
import os
import shutil
source_dir = "~/Stats/"
dest_dir = "~/Stats/Volume/"
file_paths = set()
for dir_, _, files in os.walk(source_dir):
for fileName in files:
if "Volume" in fileName:
relDir = os.path.relpath(dir_, source_dir)
file_paths.add(relDir)
for matched in file_paths:
shutil.move(matched, dest_dir)
您可以glob
为此使用。它返回与您提供的表达式匹配的路径名列表。
import glob
import shutil
dest = 'testfiles/'
files = glob.glob('*/*test.csv')
for file in files:
shutil.move(file, dest)
我使用了相对路径,但您也可以使用绝对路径。shutil
将文档移动到新位置。请参阅glob.glob
文档以获取更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句