文件按扩展名分类
import os
import shutil
src_folder = 'D:\\test\\要分类的文件\\'
des_folder = 'D:\\test\\分类后的文件\\'
files = os.listdir(src_folder)
print(files)
for i in files:
src_path = src_folder + i
if os.path.isfile(src_path):
des_path = des_folder + i.split('.')[-1]
if not os.path.exists(des_path):
os.makedirs(des_path)
shutil.move(src_path,des_path)
方法二:使用pathlib模块的path()函数
用pthlib模块完成文件和文件夹路径的相关操作,它以面向对象的思路来操作路径,使用起来更加灵活和轻松。
from pathlib import Path
src_folder = Path('D:\\要分类的文件\\')
des_folder = Path('D:\\分类后的文件\\')
files = src_folder.glob('*')
for i in files:
if i.is_file():
des_path = des_folder / i.suffix.strip('.')
if not des_path.exists():
des_path.mkdir(parents=True)
i.replace(des_path / i.name)
这里glog()函数在源文件夹下查找文件和子文件夹的完整路径,’*‘表示返回所有文件和子文件夹。方法一中使用listdir()函数返回的只是文件夹和子文件夹名称。glog()函数还支持利用通配符查找符合特定规则的文件或文件夹:’*'表示匹配任意数量个(包括0个)字符,‘?’表示匹配单个字符,‘[]’表示 匹配指定范围内的字符。
strip()函数
strip()函数主要用于删除字符串首位的空白字符(包括换行符、回车符、制表符和空格),实际上这是指使用默认参数(即不指定参数)的情况。还可以用strip()函数删除字符串首尾的指定字符,如下:
str1 = 'xyzxyz-python-zyxzyz'
str2 = str1.strip('xyz')
print(str2)
输出结果:
-python-
可以看到str1首尾所有‘x’、‘y’、‘z’字符都被删除了。 此外,如果只想删除字符串开头指定的字符,可以使用lstrip()函数;只想删除字符串结尾的指定字符使用rstrip()函数。用法和strip()函数类似。
|