Python 如何将所选文件移动到文件夹中?
该程序将文件夹中的每个文件按特定日期排序到新文件夹中。 大多数文件名遵循以下模式:Python 如何将所选文件移动到文件夹中?,python,sorting,filesystems,Python,Sorting,Filesystems,该程序将文件夹中的每个文件按特定日期排序到新文件夹中。 大多数文件名遵循以下模式: 20120509_1324654_house.jpg 20120509_1324654_roof.jpg 但也可能有一些文件的名称如下: 20120509_cat.jpg 20120509_cat.txt 20120509_dog.jpg 20120509_dog.txt 这些是我想在一个文件夹中保存的文件,但我不知道如何编辑我的代码,以便程序可以创建文件夹并将这些文件放在那里 这就是我到目前为止所拥有的:
20120509_1324654_house.jpg
20120509_1324654_roof.jpg
但也可能有一些文件的名称如下:
20120509_cat.jpg
20120509_cat.txt
20120509_dog.jpg
20120509_dog.txt
这些是我想在一个文件夹中保存的文件,但我不知道如何编辑我的代码,以便程序可以创建文件夹并将这些文件放在那里
这就是我到目前为止所拥有的:
from zipfile import ZipFile
import glob
import datetime
import os
import re
from collections import defaultdict
from shutil import copyfile
pat = r'(\d+)(?:_\d+)?_(\w+?)[\._].*'
from collections import defaultdict
src = 'D:/Testing/src/'
or name in glob.glob('D:/Testing/src/*'):
print name
dict_date = defaultdict(lambda : defaultdict(list))
for fil in os.listdir(src):
if os.path.isfile(os.path.join(src, fil)):
date, subFolder = re.match(pat, fil).groups()
dict_date[date][subFolder].append(fil)
for date in dict_date:
for subFolder in dict_date[date]:
try:
os.makedirs(os.path.join(src, date, subFolder))
except os.error:
pass
for fil in dict_date[date][subFolder]:
copyfile(os.path.join(src, fil), os.path.join(src, date, subFolder, fil))
for date in dict_date:
with ZipFile(os.path.join(src, '{0}.zip'.format(date)), 'w') as myzip:
for subFolder in dict_date[date]:
for fil in os.listdir(os.path.join(src, date, subFolder)):
if not fil.endswith('.zip'):
myzip.write(os.path.join(src, date, subFolder, fil))
directory = src
os.chdir(directory)
files = glob.glob('*.txt')
for filename in files:
os.unlink(filename)
files2 = glob.glob('*.png')
for filename in files2:
os.unlink(filename)
print ("\n follows files are now in the folder \n")
for name in glob.glob('D:/Testing/src/*'):
print name
要创建文件夹,请使用os.mkdir,例如,要创建名为animals的文件夹,请使用os.mkdiranimals要创建文件夹,请使用os.mkdir,例如,要创建名为animals的文件夹,请使用os.mkdiranimals