python通过通配符复制文件

时间:2013-08-22 04:34:24

标签: python file copy glob shutil

我正在学习python(python 3),我可以将1个文件复制到新目录 通过这样做

import shutil 
shutil.copyfile('C:/test/test.txt', 'C:/lol/test.txt')

我现在要做的是将所有* .txt文件从C:/复制到C:/ test

* .txt是一个通配符,用于搜索我硬盘上的所有文本文件

3 个答案:

答案 0 :(得分:67)

import glob
import shutil
dest_dir = "C:/test"
for file in glob.glob(r'C:/*.txt'):
    print(file)
    shutil.copy(file, dest_dir)

答案 1 :(得分:10)

使用glob.glob()获取匹配文件名的列表,然后遍历列表。

答案 2 :(得分:-2)

我首先使用python 2.7测试以确保它能够正常工作。 我使用了通配符*,因为我将日期添加到我的所有文本文件中。 filename1_2016_04_18.txt 此外,一些文本文件具有附加到文本文件的不同最终用户。 filename2_username.txt

import os, glob

directorypath = 'C:\\Program Files\\Common Files'
os.chdir(directorypath)

files = ['filename1', 'filename2', 'filename3']
print ('A %(files)s'% vars())
for filename in files:
    file1 = filename + "*" + "." + "txt"; print ('1 %(file1)s'% vars())
    file2 = ('%(file1)s') % vars (); print ('2 %(file2)s'% vars())
    file3=glob.glob(file2); print ('3 %(file3)s'% vars())
    for filename4 in file3:
        try:
            if os.path.isfile(filename4):
                    print ('I am deleteing this file %(filename4)s'% vars())
                    os.remove(filename4)
            else:    ## Show an error ##
                    print("Error can not delete text file : %s because file not found" % filename4)
        except OSError, e:  ## if failed, report it back to the user ##
                print ("Error: %s - %s." % (e.filename,e.strerror))