Поиск файлов в папке по части имени и сохранение / копирование в другую папку с использованием Python - PullRequest
0 голосов
/ 10 декабря 2011

У меня есть 700 файлов в одной папке.Мне нужно найти файлы, которые имеют "h10v03" как часть имени и скопировать их в другую папку, используя python.

Вот пример одного из файлов: MOD10A1.A2000121.h10v03.005.2007172062725.hdf

Я ценю любую помощь.

Ответы [ 3 ]

2 голосов
/ 10 декабря 2011

Нечто подобное могло бы сработать.

import os
import shutil

source_dir = "/some/directory/path"
target_dir = "/some/other/directory/path"

part = "h10v03"
files = [file for file in os.listdir(source_dir)
            if os.path.isfile(file) and part in file]
for file in files:
    shutil.copy2(os.path.join(source_dir, file), target_dir)
1 голос
/ 10 декабря 2011

Это должен быть Python? Оболочка Unix делает это для вас вполне нормально:

cp ./*h10v03* /other/directory/

В python я бы посоветовал вам взглянуть на os.listdir () и shutil.copy ()

EDIT: некоторый непроверенный код:

import os
import shutil

src_dir = "/some/path/"
target_dir = "/some/other/path/"
searchstring = "h10v03"

for f in os.listdir(src_dir):
   if searchstring in f and os.path.isfile(os.path.join(src_dir, f)):
      shutil.copy2(os.path.join(src_dir, f), target_dir)
      print "COPY", f

с модулем glob (не проверено):

import glob
import os
import shutil

for f in glob.glob("/some/path/*2000*h10v03*"):
   print f
   shutil.copy2(f, os.path.join("/some/target/dir/", os.path.basename(f)))
0 голосов
/ 10 декабря 2011

Сначала найдите все элементы в этой папке с помощью os.listdir .Затем вы можете использовать метод строки count(), чтобы определить, есть ли в нем ваша строка.Затем вы можете использовать shutil для копирования файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...