1. 程式人生 > >修改圖片的MIME型別及使其名稱排序的指令碼

修改圖片的MIME型別及使其名稱排序的指令碼

correctMIMEType模組:

import os,sys,shelve,time

def correctMIMEType():
	moduleFileName='correctMIMEType.py'
	fileTypeFile='fileType'
	mimeTypeFile='mime'
	countFile='.fileInfo'
	if not os.path.exists(countFile):
		f=shelve.open(countFile)
		f['count']=0
		f['lastModifiedTime']=0
		f.close()
	for dn in sys.path:
		if os.path.exists(os.path.join(dn,moduleFileName)):
			dirname=dn
			break
	files=[x for x in os.listdir() if os.path.isfile(x)]
	files.sort()
	unknownType=[]
	length=len(files)
	fileType=shelve.open(os.path.join(dirname,fileTypeFile))
	mimeType=shelve.open(os.path.join(dirname,mimeTypeFile))
	curCountFile=shelve.open(countFile)
	curCount=curCountFile['count']
	lastModifiedTime=curCountFile['lastModifiedTime']
	for filename in files:
		if filename[0]!='.':
			if os.path.getatime(filename)<=lastModifiedTime:
				continue
			if os.path.getatime(filename)<=lastModifiedTime:
				continue
			fe=list(os.path.splitext(filename))
			curCount+=1
			fe[0]=str(curCount)
			f=open(filename,'rb').read()
			for pictureType in fileType['pictureType']:
				findType=False
				for tp in mimeType[pictureType]:
					if f[tp[0]:tp[1]]==tp[2]:
						if fe[1]!=pictureType:
							fe[1]=pictureType
						findType=True
						break
				if findType:
					break
			else:
				unknownType.append(filename)
			newname=fe[0]+fe[1]
			if os.path.exists(newname) and newname!=filename:
				newnewname=newname
				ext=list(os.path.splitext(newnewname))
				while(os.path.exists(newnewname)):
					ext[0]=ext[0]+'o'
					newnewname=ext[0]+ext[1]
				files.remove(newname)
				files.append(newnewname)
				os.rename(newname,newnewname)
			os.rename(filename,newname)
	curCountFile['count']=curCount
	curCountFile['lastModifiedTime']=time.time()
	fileType.close()
	mimeType.close()
	curCountFile.close()
	return unknownType


def rearrangeName():
	if not os.path.exists('.fileInfo'):
		correctMIMEType()
	files=[x for x in os.listdir() if os.path.isfile(x) and x[0]!='.']
	fileExt={}
	for x in files:
		try:
			ext=os.path.splitext(x)
			fileExt[int(ext[0])]=ext[1]
		except ValueError:
			ext=os.path.split(x)
			unrelativeNames[ext[0]]=ext[1]
	beforeName=list(fileExt.keys())
	beforeName.sort()
	count=len(beforeName)
	for i in range(count):
		if beforeName[i]==i+1:
			pass
		else:
			last=beforeName.pop()
			beforeName.insert(i,i+1)
			oldname=str(last)+fileExt[last]
			newname=str(i+1)+fileExt[last]
			os.rename(oldname,newname)
	f=shelve.open('.fileInfo')
	f['count']=len(files)
	f['lastModifiedTime']=time.time()
	f.close()


相關推薦

修改圖片MIME型別使名稱排序指令碼

correctMIMEType模組: import os,sys,shelve,time def correctMIMEType(): moduleFileName='correctMIMEType.py' fileTypeFile='fileType' mime

mysql修改表字段編碼,使支持emoji表情

exception .sql var blog odi utf use pan cor 普通的UTF8編碼是不支持emoji表情插入的,會報異常: Caused by: java.sql.SQLException: Incorrect string value: ‘\xF

修改L版本android.jar使包含增加的api

工作的時候有時候會在系統中增加api方法,這時候如果提供給app開發人員使用的話有兩種方法: 打包新的android.jar 使用反射 這裡簡單的說一下第一種方法,使用反射的方法可以參照之前的文章。 其實android系統內帶的framework.jar已經包

修改微軟TstCon容器原始碼,使支援Python指令碼和ActiveX控制元件互動

關於ActiveX和指令碼互動請看https://baike.baidu.com/item/ActiveX%E8%84%9A%E6%9C%AC%E7%BC%96%E7%A8%8B/3350788?fr=aladdin本

利用ffmpeg修改MP4檔案頭資訊,使支援流式載入播放

最近在用AS3寫一個Flash的播放器,發現同樣都是H264編碼的mp4檔案,有的可以載入一點就開始播放,有的就必須全部載入完才能播。用本地播放器(potplayer,暴風影音等)開啟檢視,發現編碼什麼的也都是一樣的:左邊這個必須是全部載入完成才能播,右邊這個是一載入就能播。

修改字符集時source使生效詳解

source 版權 ==版權聲明:#本文的所有內容均來自作者劉春凱的學習總結,未經本人許可,禁止私自轉發及使用。QQ:1151887353E-mail:[email protected]/* */ [email protected]/* */[email p

修改完linux bashrc文件之後,如何不重啟系統使生效

命令 HR 讀取文件 profile 自動調用 修改 ssh登陸 body shel 修改完後,輸入如下命令即可 ##@##:~/ source ~/.bashrc 之後bashrc文件就可以使用! 註: 使用ssh登陸shell的時候,系統不會自動調用

Linux修改vim編輯器的tab命令,使移動4個空格

Linux修改vim編輯器的tab命令,使其移動4個空格 在linux中,編輯檔案時為了更直觀,通常會利用模組格式進行編輯 如: #!/usr/bin/python if True:    print ("Answer")    print

修改catalina改變tomcat命令列的名稱cmd的小技巧

啟動tomcat之後,命令列的名稱一般都是Tomcat,如果開了多個tomcat的話,很容易搞混。 為了便於區分,自定義tomcat命令列標題,修改如下: 主要修改的位置就一個地方: 改為你想要的名稱即可。 另外若想要在cmd中更改標題的話,可以這樣設定, st

在windows系統下修改hosts檔案,使可以修改

有時候我們要破解一些軟體與伺服器通訊,所以通常都需要更改Hosts檔案來達到目的,XP系統可以直接修改儲存,但是Win7系統卻提示沒有許可權去修改,那麼我們要怎樣辦呢,我們修改的是c:\windows\system32\drivers\etc下面的hosts檔案。

自己修改官方rec,使可以刷第三方包

當然已經有第三方recovery就可以跳過此教程了哈,此教程只是將官方的recovery修改成可以刷自己製作的卡刷包 具體步驟: 1.提取官方的recovery,具體方法自己找以下積分達30以上才可見 ,50天后自動去隱藏2.解壓下載到的檔案:http://pan.bai

騰訊雲centos服務器修改/etc/hosts,使重啟不失效

添加 發現 with zed 還原 -h centos服務 lac local 騰訊雲centos服務器修改/etc/hosts,使其重啟不失效 使用騰訊雲的服務器,我修改了/etc/hosts文件,然後操作了一下重啟操作後,一打開/etc/hosts文件便如以下: #

如何修改Linux開機啟動logo並使全屏顯示?

1、製作開機啟動logo的圖片(my_image.png  ==>  logo_linux_clut224.ppm),要求圖片的解析度要和螢幕大小一致。 使用如下命令: pngtopnm m

findbug的錯誤型別修改建議

分配了findbug修正的任務,以下是自己findbug中錯誤型別的整理。 ME_ENUM_FIELD_SETTER 將方法改成private或者是移除 ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD 描述:Write

WebAPI圖片批量上傳+修改圖片名稱

前言: 這幾天在做一個圖片上傳的API,在網上找了很多資料,也學到了很多東西,最近剛接觸WebAPI,好多東西都看不懂。 還停留在webfrom的概念, 哈哈 其實webfrom也沒學好,廢話不多說了,先看程式碼。 public async Task<HttpResp

過載copyProperties,使支援Map型別

    最近,專案組要用到一個功能,就是用BeanUtils.copyProperties複製一個Map裡的屬性值到另外一個物件。     BeanUtils和PropertyUtils類是許多開源框架中頻繁使用的兩個工具,它們都能實現將一個類中的屬性拷貝到另一個類中,這個功

修改WP安裝路徑資料庫名稱

  這幾天把WP由2.3.2升級到了2.5,效能上還是有些許的提升的,而且操作更加順手了,越來越喜歡這個小巧卻強大的程式了!  不過,原來的WP安裝路徑為G:/pub/html,資料庫名稱為html,現在想把它們改成G:/pub/blog和blog。結果花了我一點時間。  首

Access中欄位型別修改欄位型別的SQL語句

Access中的資料型別 Access中有10中資料型別:文字、備註、數值、日期/時間、貨幣、自動編號、是/否、OLE物件、超級連結、查詢嚮導。 1、文字(Text(n)):這種型別允許最大255個字元或數字,Access預設的大小是50個字元,而且系統只儲存輸入到欄位中的字元,而不儲存文字欄位中未用位置

Oracle修改欄位型別、註釋、欄位名稱

有一個表名為tb,欄位段名為name,資料型別nchar(20)。 1、假設欄位資料為空,則不管改為什麼欄位型別,可以直接執行: alter table tb modify (name nvarchar2(20)); Oracle資料庫中 comment (註釋) 修改方法

修改(python) mysql 資料庫 使可以支援插入中文

先建立一個數據庫,名字叫xsk #!/usr/bin/python # -*- coding:utf-8 -*- import MySQLdb # 開啟資料庫連線(本機,使用者,密碼,資料庫名) d