python文件处理-检查文件名/路径是否正确
内容涉及:检查路径是否存在,文件名长度是否一直,将重复的文件夹重命名
# -*- coding: utf-8 -*-
import os
import sys
import numpy as np
import copy
from collections import Counter '''
标注文件夹名:data ,csv文件深度4
原片文件夹名:image
长度:11
待修改索引:3
'''
image = 'image'
data = 'data'
path = os.getcwd()
path_1 = path + '/' + data
list_name = os.listdir(path_1)
Allfile_name = []
Allfile_name_1 = []
Allfile_name_1_root = []
Allfile_name_jpg = []
Allfile_name_rename = []
Allfile_name_rename_root = []
name_n = []
for n in list_name:
path_2 = path_1 + '/' + n
list_name_1 = os.listdir(path_2)
for k in list_name_1:
path_3 = path_2 + '/' + k
list_name_2 = os.listdir(path_3)
for m in list_name_2:
path_4 = path_3 + '/' + m
Allfile_name.append(path_4)
Allfile_name_1.append(m)
Allfile_name_1_root.append(path_2)
Allfile_name_rename.append(k)
Allfile_name_rename_root.append(path_3)
name_n.append(n)
#print(Allfile_name)
#print(Allfile_name_1)
#print(Allfile_name_rename)
#print(Allfile_name_rename_root)
#raise RuntimeError() for n,m in zip(Allfile_name_1,Allfile_name):
if len(n)!=14:
raise RuntimeError("file name is too long")
if n[6] == 'X':
rename = list(n)
rename[6] = 'x'
rename = ''.join(rename)
path_5 = m[:-15] + '/' + rename
os.rename(m,path_5)
print("标注文件格式 OK!")
print("... ...")
print("csv type is OK!")
#raise RuntimeError()
#根据原片jpg文件路径修改jpg_root_rename
str_start = 'D:\BaiduNetdiskDownload/'
str_start = 'D:\BaiduNetdiskDownload\细胞识别项目\原片\阳性 0603/'
str_start = 'D:\yfq_data\data0812\data\data2019-8-9/'
for n in Allfile_name:
n = n.replace(' ', '')
# print(n)
# print("++++++++++++++++++")
binglihao = copy.copy(n[-15-8:-15])
if len(binglihao)>7:
binglihao = binglihao[1:8]
m = n[-15:]
# print("binglihao: ",binglihao)
# print(m)
# print(m[:-3] + 'JPG')
jpg_root_rename = copy.copy(m[:-3]+'JPG')
# print("lala",jpg_root_rename)
# print("str_start type",type(str_start))
# print("binglihao type",type(binglihao))
# print("aaa",type('\Images'))
# print("jpg_root_rename type",type(jpg_root_rename))
#new_root = str_start + binglihao + '/Images' + jpg_root_rename
new_root = str_start + binglihao + jpg_root_rename
print("==============================")
print(new_root)
# raise RuntimeError() if not os.path.exists(new_root):
Allfile_name_jpg.append(jpg_root_rename)
if len(Allfile_name_jpg)>0:
for n in Allfile_name_jpg:
print(n)
else:
print("所有标注文件均存在对应原片!")
print("... ...")
print("all cav exits")
#print(list_name)
#print(name_n)
#raise RuntimeError()
#将重复的病例号重命名
#print("+++++++++++++++++++++++++++++")
#print(len(Allfile_name_rename))
#print(Allfile_name_1_root[1])
#print(Allfile_name_1_root[2])
temp = np.zeros((2,len(Allfile_name_rename)),dtype = 'int')
n = 0
for m in Allfile_name_rename:
temp[1,n] = m[-7:]
n = n + 1
for n in range(0,len(Allfile_name_rename)):
temp[0,n] = list(temp[1,:]).count(temp[1,n])
temp_copy = copy.copy(temp)
count = len(Allfile_name_rename)
count1 = 0
for n in temp[1,:]:
count2 = 0
for m in temp[1,:]:
temp[0,count1] = list(temp[1,0:count2]).count(temp[1,count1])
if count1 == count2:
continue
count2 = count2 + 1
count1 = count1 + 1
str_end = []
sign_2 = 0
#print("+++++++++++++++++++++")
#print(temp_copy)
#print(temp)
#raise RuntimeError()
for n in range(0,count):
if temp_copy[0,n] != 1:
sign_2 = 1
if temp[0,n] == 0:
str_end = 'A'
elif temp[0,n] == 1:
str_end = 'B'
elif temp[0,n] == 2:
str_end = 'C'
elif temp[0,n] == 3:
str_end = 'D'
elif temp[0,n] == 4:
str_end = 'E'
elif temp[0,n] == 5:
str_end = 'F'
else:
raise RuntimeError("重复病例号过多,请修改程序!!!")
dirname_1 = Allfile_name_rename_root[n]
print("=================================================")
# print(dirname_1)
rename_1 = dirname_1 + str_end
# print(rename_1)
# os.rename(dirname_1, rename_1) if sign_2 == 0:
print("没有重复病例")
else:
print("病例号重命名 OK")
print(Allfile_name_rename)
python文件处理-检查文件名/路径是否正确的更多相关文章
- Jython:java调用python文件之第三方包路径问题
本文转载自:http://blog.csdn.net/ztf312/article/details/51338060 本方法解决python代码的可移植性,不需要在新机器上配置python环境,只通过 ...
- python文件操作、查看路径、查看文件名
1 # -*- coding: utf-8 -* # from sys import argv # script,input_file = argv import os file_url = &quo ...
- Windows system 在python文件操作时的路径表示方法
file_path =(r'i:\vacpy\ch10\pi_digits.txt') #将文件路径存储在变量file_path中with open (file_path) as file_objec ...
- 用一个python文件去调用另一个python文件,关于相对路径的处理?
比如用a.py调用执行b.py,但是a.py和b.py路径环境不一样,而b.py中有使用相对路径读取文件,这时会报错,怎么在a.py中进行配置,使其调用b.py时路径和其相同,能否做到? 比如目录结构 ...
- python 文件操作的相对路径和绝对路径(windows)
1.相对路径 windows '.\'表示当前路径 with open(r'.\db\123.txt','w',encoding='utf-8') as f: f.write('abc') 2.绝对 ...
- ipa文件信息检查工具
项目地址:https://github.com/ryjwinner/softwares/raw/master/iOS-checkIPA.jar 项目简介: 针对近期大量iOS app需要签名,但多家签 ...
- MATLAB检查指定路径中的子文件夹中的文件名中是否带有空格
测试文件夹为: clear;close all;clc; %% %程序实现的功能 %检查指定路径中的子文件夹中的文件名中是否带有空格,并去掉文件名中的空格 %% %程序中用到的之前不清楚的函数如下 % ...
- python 文件路径操作方法(转)
Python编程语言在实际使用中可以帮助我们轻松的实现一些特殊的功能需求.在这里我们将会为大家详细介绍一下有关Python文件路径的相关操作技巧,从而方便我们在实际开发中获得一些帮助. Python文 ...
- python文件及路径管理函数
glob模块 说明: 1.glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索, 支持通配符操作 *.?.[] 这三个通配符,*代表0 ...
随机推荐
- Maven本地仓库/中央仓库(阿里镜像)/JDK配置
第一步打开你已经下载好的Maven,进入:根磁盘:\......\apache-maven-3.6.2\conf文件夹找到settings.xml文件(没有的可以自行创建一个同名的文件即可) 使用文本 ...
- ActiveMQ 笔记(七)ActiveMQ的多节点集群
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.Activemq 的集群思想 1.使用Activemq集群的原因 面试题: 引入消息中间件后如何保证 ...
- Java实现 LeetCode 447 回旋镖的数量
447. 回旋镖的数量 给定平面上 n 对不同的点,"回旋镖" 是由点表示的元组 (i, j, k) ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺 ...
- Java GUI 鼠标事件
import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.event.Mou ...
- java实现第39级台阶(三十九级台阶)
标题: 第39级台阶 小明刚刚看完电影<第39级台阶>,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶.先 ...
- [C#.NET 拾遗补漏]02:数组的几个小知识
阅读本文大概需要 1.5 分钟. 数组本身相对来说比较简单,能想到的可写的东西不多.但还是有一些知识点值得总结和知晓一 下.有的知识点,知不知道不重要,工作中用的时候搜索一下就可以了,毕竟实现一个功 ...
- Java 8 新特性——检视阅读
Java 8 新特性--检视阅读 参考 Java 8 新特性--菜鸟 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的 ...
- 搞清楚C语言指针
Part 0:为什么要写这篇文章 C语言中的指针是C语言的精髓,也是C语言的重难点之一. 然而,很少有教程能把指针讲的初学者能听懂,还不会引起歧义. 本文章会尝试做到这一点,如有错误,请指出. Par ...
- Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to...异常处理
这个是打开Android Studio项目报的错误提示,单纯从上面的提示还是不能太直接的知道什么问题.后来我想这个项目的Gradle版本与我当前AS使用的版本不一致,可能是这个问题. 修改build. ...
- [computer graphics]世界坐标系->相机坐标系详细推导
基变换 理论部分 在n维的线性空间中,任意n个线性无关的向量都可以作为线性空间的基,即空间基不唯一.对于不同的基,同一个向量的坐标一般是不同的.因为在计算机图形学中,主要研究三维的空间,所以可以简化问 ...