【问题标题】:How to select and copy files with specific file names from one directory to another?如何从一个目录中选择并复制具有特定文件名的文件到另一个目录?
【发布时间】:2020-06-03 08:25:43
【问题描述】:

我有一个目录,每天/每月都有两种不同类型的文件名:

 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);

有人可以帮忙吗?提前致谢!

【问题讨论】:

    标签: python directory shutil


    【解决方案1】:

    你当然可以这样做,

    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)
    

    希望它能解决您的问题!

    【讨论】:

    • 这正是我想要的,谢谢!
    【解决方案2】:

    使用正则表达式应该适合你:

    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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      • 2017-11-18
      • 1970-01-01
      相关资源
      最近更新 更多