Как выбрать и скопировать файлы с указанными c именами файлов из одного каталога в другой? - PullRequest
2 голосов
/ 19 февраля 2020

У меня есть каталог с двумя разными типами имен файлов ежедневно / ежемесячно:

 report_20-10-2019.csv
 report_21-10-2019.csv
 report_22-10-2019.csv

 report_09-2019.csv
 report_10-2019.csv
 report_11-2019.csv

Я пытаюсь копировать только ежедневные файлы в другой каталог. Пока я могу скопировать все файлы с кодом ниже:

import shutil
import os
import glob

source_daily = '/path/to/files/to/copy/*.csv'
dest1 = 'path/to/directory/where/i/paste/my/files/'

files = os.listdir(source)

for file in glob.glob(source):
shutil.copy(file, dest1);

Может ли кто-нибудь помочь с этим? Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Вы, конечно, можете это сделать,

import shutil
import os
import re

source = '/path/to/files/to/copy/'
dest1 = 'path/to/directory/where/i/paste/my/files/'

for filename in os.listdir(source):
    filepath = os.path.join(source, filename)
    if os.path.isfile(filepath):
        if re.search(r"[0-9]+-[0-9]+-[0-9]+\.csv", filepath):
            shutil.copy(filepath, dest1)

Надеюсь, это решит вашу проблему!

0 голосов
/ 19 февраля 2020

Использование регулярных выражений должно работать для вас:

import re

import shutil
import os
import glob

source_daily = '/path/to/files/to/copy/*.csv'
dest1 = 'path/to/directory/where/i/paste/my/files/'

files = os.listdir(source)

pattern = re.compile('\w+_[0-3]\d-[0-1]\d-\d{4}.csv') #naming-pattern

for file in glob.glob(source):
    if pattern.match(file):
        shutil.copy(file, dest1);
...