在python中基于文件名中的字符串移动文件

在python中基于文件名中的字符串移动文件,python,automation,Python,Automation,我正在尝试使用os.walk在目录中移动,查找文件名中包含特定字符串的文件,并将其移动到其他文件夹。到目前为止,我可以使用os.walk查看所有内容并找到文件名,但我不确定如何根据我在文件名中查找的字符串进行选择并相应地移动它们 os.chdir(r'C:\Users\Dillon\Desktop\Arid West') dest = r'C:\Users\Dillon\Desktop\Arid West\Target Folder' for dirpath, dirnames, filen

我正在尝试使用os.walk在目录中移动,查找文件名中包含特定字符串的文件,并将其移动到其他文件夹。到目前为止,我可以使用os.walk查看所有内容并找到文件名,但我不确定如何根据我在文件名中查找的字符串进行选择并相应地移动它们

os.chdir(r'C:\Users\Dillon\Desktop\Arid West')

dest = r'C:\Users\Dillon\Desktop\Arid West\Target Folder'

for dirpath, dirnames, filenames in os.walk(r'C:\Users\Dillon\Desktop\Arid West'):
    source = os.listdir(r'C:\Users\Dillon\Desktop\Arid West')
    print('Current Path:', dirpath)
    print('Directories: ', dirnames)
    print('Files: ', filenames)

if 'somestring' in filenames:
    shutil.move(source, dest)

这对你有用吗

import os 
os.chdir(r'yourdir')
dest = r'yourdest'
for dirpath, dirnames, filenames in os.walk(r'yourdir'):
    for filename in filenames:
        if 'somestring' in filename:
            shutil.move(dirpath + filename, dest)

确保文件名中的“if'somestring'”在for loop中正确标识。您是否在Python 3.6+上?如果是,请考虑使用。您的代码将变得更干净、更容易理解。这会产生一个错误
FileNotFoundError:[Errno 2]没有这样的文件或目录:“C:\\Users\\Dillon\\Desktop\\andry West\\LC08\u CU\u 008009\u 2014090504\u C01\u V01\u srlc08cu0082014090220190504c01v01\u B1.tif”