1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python获取文件夹名称 文件名 去除后缀的文件名 文件改名等

python获取文件夹名称 文件名 去除后缀的文件名 文件改名等

时间:2020-12-12 08:23:21

相关推荐

python获取文件夹名称 文件名 去除后缀的文件名 文件改名等

当前目录下所有文件夹下的文件名(不带后缀)写入对应txt文件(以文件夹命名)中
重命名文件
getfiledata.py

# 当前目录下所有文件夹下的文件名(不带后缀)写入对应txt文件(以文件夹命名)中import os# 如果文件夹不存在创建文件夹def Makedir(path):folder = os.path.exists(path)if (not folder):os.makedirs(path)# 利用os.listdir()、os.walk()获取文件夹和文件名def GetFileName(fileDir, outDir):list_name = []Makedir(outDir)for dir in os.listdir(fileDir): # 获取当前目录下所有文件夹和文件(不带后缀)的名称filePath = os.path.join(fileDir, dir) # 得到文件夹和文件的完整路径if os.path.isdir(filePath) and not (filePath == outDir):txt = outDir + dir + ".txt"# 获取根目录路径、子目录路径,根目录和子目录下所有文件名for root, subDir, files in os.walk(filePath):for fileName in files:f = open(txt, 'a') # 以追加方式打开文件fileName = os.path.splitext(fileName)[0] + '\n' # 分割,不带后缀名f.write(fileName)f.close()def main():fileDir = "H:\\resultdata" # 输入文件夹路径outDir = "H:\\resultdata\\FileData\\"files = GetFileData(fileDir, outDir)# 判断是否是程序主入口而已,如果是程序主入口,则代码块执行,否则代码块不执行# 主要用于别人调用此代码时,不要进入该代码的入口if __name__ == "__main__":main()

single_renamefile.py

import os# 获取所有.mp4文件名称,不带后缀def GetVideoName(dir):listName = []for fileName in os.listdir(dir):if os.path.splitext(fileName)[1] == '.mp4':fileName = os.path.splitext(fileName)[0]listName.append(fileName)return listName# 获取所有.txt文件名称,不要后缀def GetTxtName(dir):listName = []for fileName in os.listdir(dir): if os.path.splitext(fileName)[1] == '.txt':fileName = os.path.splitext(fileName)[0]listName.append(fileName)return listNamedef IsPart(frames, video):length = len(frames)for i in range(length):if video == frames[i]:return Trueelse:continuereturn False# 按行获取txt文件内容def ReadVideoInfo(path): f = open(path, 'r')fileContents = []for fileContent in f.readlines(): # 获取所有行fileContent = fileContent.strip("\n") # 去掉换行符fileContents.append(fileContent) # 每一个视频场景对应的片段帧return fileContentsdef ReadLabel(labelFile):# 获取标签内容f = open(labelFile, 'r')labelContents = []for line in f.readlines():labelContents.append(line)return labelContents# 全局变量的定义time_9 = 0time_9_11 = 0time_11_13 = 0time_13_15 = 0time_15_17 = 0time_17 = 0def GetTimeNum(string):strTmp = string.split('_')strTmp = strTmp[1]number = int(strTmp)# 全局变量使用前,要用globalglobal time_9global time_9_11global time_11_13global time_13_15global time_15_17global time_17if number < 900:time_9 += 1elif number >= 900 and number < 1100:time_9_11 += 1elif number >= 1100 and number < 1300:time_11_13 += 1elif number >= 1300 and number < 1500:time_13_15 += 1elif number >= 1500 and number < 1700:time_15_17 += 1else:time_17 += 1# 文件改名,os.rename()def RenameFile(videoInfoDir, videoDir, labelFile):videosName = GetVideoName(videoDir) # 获取待改名视频名称videoInfoList = GetTxtName(videoInfoDir) # 视频场景的文件名列表labelContents = ReadLabel(labelFile)videosNameLen = len(videosName)for i in range(videosNameLen): # 每个视频和所有场景对比for videoInfo in videoInfoList:path = videoInfoDir + "\\" + videoInfo + '.txt'fileContents = ReadVideoInfo(path) # 当前场景的视频信息# 该视频文件属于该场景if IsPart(fileContents, videosName[i]):src = videoDir + '\\' + videosName[i] + '.mp4'dst = videoDir + '\\' + videoInfo + \'_' + videosName[i] + '.mp4'os.rename(src, dst)labelLine = labelContents[i] # 标签每行内容# labelLine.split(',')modiLine = videoInfo + '_' + labelLineGetTimeNum(modiLine)labelF = open(videoDir+'\\'+'newlabel.txt', 'a')labelF.write(modiLine)labelF.close()break# 对比完毕,找不到对应的场景,_05_04Aelse:if videoInfo == videoInfoList[len(videoInfoList) - 1]:src = videoDir + '\\' + videosName[i] + '.mp4'dst = videoDir + '\\' + '0504_1300_A' + \'_' + videosName[i] + '.mp4'os.rename(src, dst)labelLine = labelContents[i] # 标签每行内容# labelLine.split(',')modiLine = '0504_1300_A' + '_' + labelLineGetTimeNum(modiLine)labelF = open(videoDir+'\\'+'newlabel.txt', 'a')labelF.write(modiLine)labelF.close()def main():videoDir = "H:\\Video_selected\\single"labelFile = "H:\\Video_selected\\single\\label.txt"videoInfoDir = "H:\\Video_selected\\FileData"RenameFile(videoInfoDir, videoDir, labelFile)print(time_9,time_9_11,time_11_13,time_13_15,time_15_17,time_17)if __name__ == "__main__":main()

mul_renamefile.py

import osdef GetVideoName(dir):listName = []for fileName in os.listdir(dir): # 获取所有.mp4文件名称if os.path.splitext(fileName)[1] == '.mp4':fileName = os.path.splitext(fileName)[0]listName.append(fileName)return listNamedef GetTxtName(dir):listName = []for fileName in os.listdir(dir): # 获取所有.txt文件名称if os.path.splitext(fileName)[1] == '.txt':fileName = os.path.splitext(fileName)[0]listName.append(fileName)return listNamedef IsPart(frames, video):length = len(frames)for i in range(length):if video == frames[i]:return Trueelse:continuereturn Falsedef ReadVideoInfo(path):# 获取txt文件内容f = open(path, 'r')fileContents = []for fileContent in f.readlines():fileContent = fileContent.strip("\n") # 去掉换行符fileContents.append(fileContent) # 每一个视频场景对应的片段帧return fileContentsdef ReadLabel(labelFile):# 获取标签内容f = open(labelFile, 'r')labelContents = []for line in f.readlines():labelContents.append(line)return labelContentstime_9 = 0time_9_11 = 0time_11_13 = 0time_13_15 = 0time_15_17 = 0time_17 = 0def GetTimeNum(string):strTmp = string.split('_')strTmp = strTmp[1]number = int(strTmp)global time_9global time_9_11global time_11_13global time_13_15global time_15_17global time_17if number < 900:time_9 += 1elif number >= 900 and number < 1100:time_9_11 += 1elif number >= 1100 and number < 1300:time_11_13 += 1elif number >= 1300 and number < 1500:time_13_15 += 1elif number >= 1500 and number < 1700:time_15_17 += 1else:time_17 += 1def RenameFile(videoInfoDir, videoDir, labelFile):videosName = GetVideoName(videoDir) # 获取待改名视频名称videosNameLen = len(videosName)totalVideoName = []for i in range(videosNameLen):tmp = videosName[i].split('_')tmp = tmp[0] + '_' + tmp[1]totalVideoName.append(tmp)videoInfoList = GetTxtName(videoInfoDir) # 视频场景的文件名列表labelContents = ReadLabel(labelFile)for i in range(videosNameLen): # 每个视频和所有场景对比for videoInfo in videoInfoList:path = videoInfoDir + "\\" + videoInfo + '.txt'fileContents = ReadVideoInfo(path) # 当前场景的视频信息# 该视频文件属于该场景if IsPart(fileContents, totalVideoName[i]):src = videoDir + '\\' + videosName[i] + '.mp4'dst = videoDir + '\\' + videoInfo + \'_' + videosName[i] + '.mp4'os.rename(src, dst)labelLine = labelContents[i] # 标签每行内容# labelLine.split(',')modiLine = videoInfo + '_' + labelLineGetTimeNum(modiLine)labelF = open(videoDir+'\\'+'newlabel.txt', 'a')labelF.write(modiLine)labelF.close()break# 对比完毕,找不到对应的场景,_05_04Aelse:if videoInfo == videoInfoList[len(videoInfoList) - 1]:src = videoDir + '\\' + videosName[i] + '.mp4'dst = videoDir + '\\' + '0504_1300_A' + \'_' + videosName[i] + '.mp4'os.rename(src, dst)labelLine = labelContents[i] # 标签每行内容# labelLine.split(',')modiLine = '0504_1300_A' + '_' + labelLineGetTimeNum(modiLine)labelF = open(videoDir+'\\'+'newlabel.txt', 'a')labelF.write(modiLine)labelF.close()def main():videoDir = "H:\\Video_selected\\multiple"labelFile = "H:\\Video_selected\\multiple\\label.txt"videoInfoDir = "H:\\Video_selected\\FileData"RenameFile(videoInfoDir, videoDir, labelFile)print(time_9,time_9_11,time_11_13,time_13_15,time_15_17,time_17)if __name__ == "__main__":main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。