前言
Python的OS库提供了许多用于文件和目录操作的基本功能,如重命名、复制、删除等,能够方便地进行文件系统管理。优点包括易于学习和使用,功能丰富;缺点则是有些操作需要更多复杂的处理,可能不够高效。适合场景包括需要对文件和目录进行简单管理和操作的应用,如文件整理、备份等。
优点:
- 易于学习和使用,Python的OS库提供了简单直观的接口,适合初学者或快速开发。
- 功能丰富,能够完成大部分基本的文件和目录操作,满足一般需求。
- 跨平台性,适用于不同操作系统,使得程序具有更好的可移植性。
缺点:
- 对于复杂的文件操作可能需要更多的代码处理,不如一些专门的第三方库方便。
有些操作可能不够高效,特别是处理大量文件时可能会导致性能下降。
适用场景:
- Python的OS库适合处理简单的文件和目录操作,例如文件重命名、复制、移动、删除等。常见的应用场景包括文件整理、备份、批量重命名等操作。如果需要更高级的功能或更好的性能,可以考虑使用一些专门的第三方库来完成。
OS/SHUTIL 的方法描述
方法/函数 | 描述 |
---|---|
os.rename(src, dst) | 重命名文件或目录 |
os.listdir(path) | 返回指定目录下的所有文件和目录 |
os.getcwd() | 返回当前工作目录 |
os.chdir(path) | 改变当前工作目录 |
os.path.join(path1, path2) | 将两个路径组合成一个完整路径 |
os.path.exists(path) | 检查指定路径(文件或目录)是否存在 |
os.path.isfile(path) | 检查路径是否为文件 |
os.path.isdir(path) | 检查路径是否为目录 |
os.path.basename(path) | 返回路径中的文件名 |
os.path.dirname(path) | 返回路径中的目录名 |
os.path.split(path) | 返回路径的目录名和文件名 |
os.path.splitext(path) | 分割路径的文件名和扩展名 |
os.makedirs(path) | 递归创建目录 |
os.remove(path) | 删除文件 |
os.rmdir(path) | 删除空目录 |
shutil.copy(src, dst) | 复制文件或目录 |
shutil.move(src, dst) | 移动文件或目录 |
shutil.rmtree(path) | 递归删除目录和文件 |
以上是一些常用的os和shutil库函数/方法,用于处理文件和目录操作。这些函数可以帮助你在Python中执行文件的移动、复制、删除、重命名等操作。
OS/SHUTIL 的方法实操
1️⃣我的C盘文件夹下的Pythonspider,有Python爬虫相关的20份左右的文件,我想把这些文件重命名一下,于是这便用到了OS库来进行重命名操作了。
2️⃣我对这些文件的命名特点进行共性分析,便于新命名的规律
文件名是这一串:python_python_v1.0_第3章_Python爬虫_02-xpath表达式&案例_[代码]_11_7_xpath表达式案例其他文件都是基于
这一规律的:我想着是提取改文件名的中间一部分便找到了“_”这个分割
具体代码如下:
import os # 设置文件夹路径 folder_path = r'C:\Pythonspider' # 获取文件夹下的所有文件和文件夹 entries = os.listdir(folder_path) # 遍历文件夹中的所有条目 for entry in entries: # 获取每个条目的完整路径 full_path = os.path.join(folder_path, entry) # 检查是否是文件 if os.path.isfile(full_path): # 分割文件名和扩展名 filename, ext = os.path.splitext(entry) # 假设文件名以'_'分隔,我们可以通过分割字符串并选择特定部分来实现 parts = filename.split('_') # 检查分割后的文件名部分是否足够 if len(parts) > 5: # 截取第五个'_'后和第六个'_'前的文件名部分 new_filename = '_'.join(parts[5:6]) + ext # 构造新的文件完整路径 new_file_path = os.path.join(folder_path, new_filename) # 构造原始文件的完整路径 old_file_path = os.path.join(folder_path, entry) # 重命名文件 os.rename(old_file_path, new_file_path) print(f"Renamed '{entry}' to '{new_filename}'") else: print(f"The original filename '{entry}' does not contain enough parts separated by '_'.") else: # 如果是文件夹,可以选择递归遍历或忽略 continue print("Renaming process completed.")
3️⃣运行代码后,这个新命名我看的就比较轻松了:
附:第三方库安装脚本
# PipInstall.py import os libs = {'numpy','sklearn','pillow','beautifulsoup4','wheel','networkx',\ 'sympy','django','pypdf2','pygame'} try: for lib in libs: os.system('pip install' + lib) print('Successful') except: print('Failed')
运行结果:
======================= RESTART: D:/python/PipInstall.py =======================
Successful
Successful
Successful
Successful
Successful
Successful
Successful
Successful
Successful
Successful
总结
这是一次小小的尝试,我依稀记得刚进公司时,主管叫我给4000多个视频文件进行重命名,根据视频的相关内容,花费了我一周时间将其搞定,后面我将会根据现实所碰到的问题,一一介绍Python第三方库的妙用!!!