Копирование Python файлов с помощью подстановочных знаков
Я изучаю Python (Python 3), и я могу скопировать 1 файл в новый каталог, выполнив это
import shutil
shutil.copyfile('C:/test/test.txt', 'C:/lol/test.txt')
Сейчас я пытаюсь скопировать все *.txt файлы из C:/ в C:/ test
*.txt - это шаблон для поиска всех текстовых файлов на моем жестком диске.
3 ответа
import glob
import shutil
dest_dir = "C:/test"
for file in glob.glob(r'C:/*.txt'):
print(file)
shutil.copy(file, dest_dir)
Использование glob.glob()
чтобы получить список подходящих имен файлов, а затем выполнить итерацию по списку.
Сначала я использую тест 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))