python批量修改文件名,替换文件名称,添加文件名前缀,使用class实现完整代码
时间: 2024-05-09 18:21:04 浏览: 137
以下是使用Python class实现批量修改文件名的完整代码:
```python
import os
class BatchRename:
def __init__(self, path, prefix="", suffix="", replace_dict=None):
self.path = path
self.prefix = prefix
self.suffix = suffix
self.replace_dict = replace_dict
def rename(self):
for filename in os.listdir(self.path):
# 获取文件的完整路径
file_path = os.path.join(self.path, filename)
# 判断是否是文件,不是文件则跳过
if not os.path.isfile(file_path):
continue
# 替换文件名中的字符串
if self.replace_dict:
for key, value in self.replace_dict.items():
filename = filename.replace(key, value)
# 添加前缀和后缀
filename = self.prefix + filename + self.suffix
# 获取文件的后缀名
ext = os.path.splitext(filename)[-1]
# 生成新的文件名
new_filename = str(hash(filename)) + ext
# 重命名文件
os.rename(file_path, os.path.join(self.path, new_filename))
if __name__ == '__main__':
# 设置路径及参数
path = "/path/to/folder"
prefix = "prefix_"
suffix = "_suffix"
replace_dict = {"old_str": "new_str"}
# 实例化BatchRename类并调用rename方法
renamer = BatchRename(path, prefix, suffix, replace_dict)
renamer.rename()
```
以上代码中,BatchRename类的构造函数接收四个参数,分别是文件夹的路径(path)、文件名前缀(prefix)、文件名后缀(suffix)和需要替换的字符串字典(replace_dict)。rename方法遍历文件夹中的所有文件,根据参数进行文件名的修改。其中,使用了hash函数生成新的文件名,以避免重名问题。
阅读全文