【Tool】python重命名文件夹下的所有图片文件名

【Tool】python重命名文件夹下的所有图片文件名

今天发现某个要用的图片文件夹里的图片命名有问题,数目差1:
文件夹里图片命名都是page-0,page-1…想把他变成page-1,page-2…
简单记下源码:主要是os.rename(oldname,newname),没什么好说的。记一下。

# #重命名文件夹里图片
import os
# 原路径
path="d:/ori_path/"
# 现路径
outputpath="d:/des_path/"
for i, filename in enumerate(os.listdir(path)):
     if (filename.endswith('.jpeg')):
        f=int(filename.split('-')[1].split('.')[0])+1
        print(filename.split('-')[1],'page-' +str(f)+".jpeg")
        ori_name=path+filename
        os.rename(ori_name,outputpath+'page-' +str(f)+".jpeg")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Windows下使用C++重命名文件名是通过调用系统函数来实现的。你可以使用`FindFirstFile`和`FindNextFile`函数来遍历指定目录下的所有文件,然后使用`MoveFile`函数来重命名文件名。 以下是一个示例代码,可以实现将指定目录下的所有文件名中带有中文的文件重命名为1: ```cpp #include <iostream> #include <windows.h> void RenameFilesWithChinese(const std::string& directory) { WIN32_FIND_DATAA findData; HANDLE hFind = FindFirstFileA((directory + "\\*").c_str(), &findData); if (hFind != INVALID_HANDLE_VALUE) { do { if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { // 忽略目录 continue; } std::string fileName = findData.cFileName; std::string filePath = directory + "\\" + fileName; // 判断文件名是否包含中文 bool hasChinese = false; for (char c : fileName) { if (c >= 0 && c <= 127) { hasChinese = true; break; } } if (hasChinese) { std::string newFileName = "1"; std::string newFilePath = directory + "\\" + newFileName; if (MoveFileA(filePath.c_str(), newFilePath.c_str())) { std::cout << "成功重命名文件:" << fileName << std::endl; } else { std::cout << "重命名文件失败:" << fileName << std::endl; } } } while (FindNextFileA(hFind, &findData)); FindClose(hFind); } } int main() { std::string directory = "D:\\linuxProject\\3403_tool\\test_model\\bin\\plate"; RenameFilesWithChinese(directory); return 0; } ``` 请注意,上述代码中使用的是ANSI字符集的函数,如果你的文件名中包含Unicode字符,可能需要使用Unicode字符集的函数(例如`FindFirstFileW`和`MoveFileW`)来处理。另外,为了避免文件名重复导致的错误,你可能需要在重命名时添加一些额外的逻辑来处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值