python的一些小工具

1、批量文件重命名

#coding=gbk
import os
import sys
def rename():
    path=input("请输入路径(例如D:\\\\picture):")
    name=input("请输入开头名:")
    startNumber=input("请输入开始数:")
    fileType=input("请输入后缀名(如 .jpg、.txt等等):")
    print("正在生成以"+name+startNumber+fileType+"迭代的文件名")
    count=0
    filelist=os.listdir(path)
    for files in filelist:
        Olddir=os.path.join(path,files)
        if os.path.isdir(Olddir):
            continue
        Newdir=os.path.join(path,name+str(count+int(startNumber))+fileType)
        os.rename(Olddir,Newdir)
        count+=1
    print("一共修改了"+str(count)+"个文件")

rename() 

2、获取文件路径列表

# coding=gbk
import os
# 获取文件名
file_names = os.listdir("/文件夹路径")
# 文件名拼接路径
file_list = [os.path.join("/文件夹路径",file) for file in file_names]
print(file_list)

3、随机划分数据集

# coding=gbk
import random
from random import randint

oldf=open('read.csv','r',encoding='gbk')
#从0~15000产生2500个随机数组成的列表
resultList = random.sample(range(0,15000),2500)
newf=open('write.csv','w',encoding='gbk')

lines=oldf.readlines()
for i in resultList:
    newf.write(lines[i])
    
oldf.close()
newf.close()

4、随机抽取指定文件夹下面的图片

import os,sys
import random
import shutil
import time


def getJpg(filename: str):
	return filename.endswith("jpg")

def getFile(fileDir, toFileDir, number):
	path = os.path.abspath(fileDir) + "/"
	path.replace("\\", "/")
	if os.path.isdir(fileDir):
		pathList = os.listdir(fileDir)
		jpgList = [i for i in filter(getJpg, pathList)]
		if jpgList:
			try:
				sample = random.sample(jpgList, number)
			except:
				print("某层文件夹图片数量不够")
				return
			for name in sample:
				try:
					shutil.move(path+name, toFileDir)
				except:
					filename = str(time.time()).replace('.','') + ".jpg"
					path = path.replace("\\", "/")
					os.rename(path+name, path+filename)
					shutil.move(path+filename, toFileDir)
		dirList = set(pathList) - set(jpgList)
		if dirList:
			for dir in dirList:
				getFile(path+dir, toFileDir, number)
	 

if __name__ == "__main__":
	fileDir = input("请输入处理文件夹:")
	if not os.path.isdir(fileDir):
		print("输入错误!")
		sys.exit()
	toFileDir = input("请输入目标文件夹:")
	if not os.path.isdir(toFileDir):
		print("输入错误!")
		sys.exit()
	number = input("请输入随机抽取图片数量:")
	if not number.isdigit() or int(number) <=0 :
		print("输入错误!")
		sys.exit()
	getFile(fileDir, toFileDir, int(number))
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值