这是最近工作中为了节省时间做的一点工具程序
利用labelme标记图片,生成的json文件及对应图片移动到新的文件夹下(不仅移动json文件也移动对应的图片到新的文件夹下)
import os,shutil
path=input("输入文件路径:\n")
path=path.replace('\\','/')
path=os.path.join(path+'/')
dist_file=input("输入目标文件路径:\n")
dist_file=dist_file.replace('\\','/')
dist_file=os.path.join(dist_file+'/')
if(os.path.exists(path)):
names=os.listdir(path)
del_name=[]
for i in range(len(names)):
del_name.append(names[i].split(".")[0])
for n in del_name:
if(del_name.count(n)>=2):
filename=os.path.join(path,n+'.bmp')
jsonname=os.path.join(path,n+'.json')
newfile=os.path.join(dist_file,n+'.bmp')
newjson=os.path.join(dist_file,n+'.json')
del_name.remove(n)
shutil.move(filename,newfile)
shutil.move(jsonname,newjson)
print("已移动标注文件{}!".format(n))
print("标记文件及对应图片移动成功!")
try:
input("Press any key to end")
except SyntaxError:
pass
这个是用来删除两个文件夹下重复的文件(假设有两个文件夹A,B A为参考文件夹,B为待删除文件夹,作用是删除B文件夹中与A文件夹中文件名相同的文件)
import os
path=input("请输入参考同名文件夹路径:\n")
path=path.replace("\\","/")
path=os.path.join(path+"/")
dist=input("请输入待删除文件夹路径:\n")
dist=dist.replace("\\","/")
dist=os.path.join(dist+"/")
if(os.path.exists(path)):
names=os.listdir(path)
else:
print("输入参考路径不存在,请检查路径!")
if(os.path.exists(dist)):
names1=os.listdir(dist)
else:
print("输入删除路径不存在,请检查路径!")
del_list=[n for n in names if n in names1]
for n in del_list:
filename=os.path.join(dist,n)
os.remove(filename)
print("目标文件夹重复文件{}已删除!".format(n))
print("目标文件夹重复文件已删除成功!")
print("重复文件个数: {}".format(len(del_list)))
try:
input("Press any key to end")
except SyntaxError:
pass
其实写完代码后,你可以利用pyinstaller 生成对应的.exe文件,并且可移动到别的电脑上使用
利用下面命令下载包及生成.exe文件
(需要在对应的.py文件目录下)
pip install pyinstaller -i https://pypi.douban.com/simple/
pyinstaller -F xxxx.py
最后会生成两个文件夹,及对应的.spec,两个文件夹分别为build,dist,dist下面是可执行文件,build是对应的环境