博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
批量取出文件夹中图片的名字存进文本,并去命名新的文件夹下的图片
阅读量:4326 次
发布时间:2019-06-06

本文共 2686 字,大约阅读时间需要 8 分钟。

这个任务为具体分为两步完成的:

1、取出文件中的图片的名字存入到文本中;

2、逐行取出文本中的名字去逐个命名新文件夹下的图片;

任务一:

1 # -*- coding:utf-8 -*- 2 import sys 3 sys.path.append('D:\tensorflow\install\libs') 4 import os #os:操作系统相关的信息模块 5 import random #导入随机函数 6 #存放原始图片地址 7 #data_base_dir = r"F:\underwater slam\VOC\VOC2007\JPEGImages" 8 data_base_dir = r"F:\1picture" 9 file_list = [] #建立列表,用于保存图片信息10 #读取图片文件,并将图片地址、图片名和标签写到txt文件中11 write_file_name = r'F:\dir.txt'12 write_file = open(write_file_name, "w") #以只写方式打开write_file_name文件13 for file in os.listdir(data_base_dir): #file为current_dir当前目录下图片名14     if file.endswith(".jpg"): #如果file以jpg结尾15         write_name = file #图片路径 + 图片名 + 标签16         file_list.append(write_name) #将write_name添加到file_list列表最后17 sorted(file_list) #将列表中所有元素随机排列18 number_of_lines = len(file_list) #列表中元素个数19 #将图片信息写入txt文件中,逐行写入20 for current_line in range(number_of_lines): 21     write_file.write(file_list[current_line] + '\n')22 #关闭文件23 write_file.close()

任务二:

1 #include 
2 #include
//对系统文件进行操作的头文件 3 #include
4 #include
5 #include
6 #include
7 8 using namespace std; 9 10 const string FileType = ".jpg"; // 需要查找的文件类型11 12 int main()13 {14 _finddata_t c_file; // 查找文件的类15 16 string File_Directory = "F:\\1picture"; //文件夹目录17 string strFlie = "F:\\draft\\draft\\rgbd_dataset_freiburg2_desk\\dir.txt";18 ifstream f;19 20 f.open(strFlie.c_str());21 22 string buffer = File_Directory + "\\*" + FileType;23 24 //long hFile; //win7系统,_findnext()返回类型可以是long型25 intptr_t hFile; //win10系统 ,_findnext()返回类型为intptr_t ,不能是long型26 hFile = _findfirst(buffer.c_str(), &c_file); //找第一个文件27 28 if (hFile == -1L) // 检查文件夹目录下存在需要查找的文件29 printf("No %s files in current directory!\n", FileType);30 else31 {32 printf("Listing of files:\n");33 34 int i = 0;35 string newfullFilePath;36 string oldfullFilePath;37 string str_name;38 do39 {40 oldfullFilePath.clear();41 newfullFilePath.clear();42 str_name.clear();43 44 getline(f, str_name);45 if (str_name == "")46 {47 cout << "文件数大于文件名" << endl;48 break;49 }50 51 //旧名字52 oldfullFilePath = File_Directory + "\\" + c_file.name;53 //新名字54 newfullFilePath = File_Directory + "\\" + str_name + FileType;55 56 /*重命名函数rename(const char* _OldFileName,const char* _NewFileName)57 第一个参数为旧文件路径,第二个参数为新文件路径*/58 int c = rename(oldfullFilePath.c_str(), newfullFilePath.c_str());59 60 if (c == 0)61 puts("File successfully renamed");62 else63 perror("Error renaming file");64 65 } while (_findnext(hFile, &c_file) == 0); //如果找到下个文件的名字成功的话就返回0,否则返回-1 66 _findclose(hFile);67 }68 system("pause");69 return 0;70 }

 

转载于:https://www.cnblogs.com/wall-e2/p/9829330.html

你可能感兴趣的文章
时钟系统
查看>>
BiTree
查看>>
5个基于HTML5的加载动画推荐
查看>>
水平权限漏洞的修复方案
查看>>
静态链接与动态链接的区别
查看>>
Android 关于悬浮窗权限的问题
查看>>
如何使用mysql
查看>>
linux下wc命令详解
查看>>
敏捷开发中软件测试团队的职责和产出是什么?
查看>>
在mvc3中使用ffmpeg对上传视频进行截图和转换格式
查看>>
python的字符串内建函数
查看>>
Spring - DI
查看>>
微软自己的官网介绍 SSL 参数相关
查看>>
Composite UI Application Block (CAB) 概念和术语
查看>>
64位MATLAB和C混合编程以及联合调试
查看>>
原生js大总结二
查看>>
PHP基础
查看>>
UVa 11488 超级前缀集合(Trie的应用)
查看>>
Django 翻译与 LANGUAGE_CODE
查看>>
[转]iOS教程:SQLite的创建数据库,表,插入查看数据
查看>>