python学习记录-文件操作-文件的重命名,分类和移动-数据整理

python学习记录-文件操作-文件的重命名,分类和移动-数据整理

一.os库

在拆电脑的时候会用到螺丝刀等工具,而os库就是我们用来对文件进行操作的工具箱。里面有大佬已经编写好的工具,在使用的时候只需要在文件开头导入即可在后续的代码中使用

import os

二.此次要用到的函数

os.listdir()
获取目标路径下文件及文件夹的名字,并将其存贮与列表[]中输出

例1:os.listdir()

path = ".\\dataset"#设置数据所在路径,其中.\表示相对路径
filelist = os.listdir(path)

此处先定义了path,将文件所在的目录的路径放在其中,并使用os.listdir()获取path路径下的所有文件及文件夹的名字,输出为列表,放置在filelist之中

os.getcwd()

​ 获取当前工作目录,即.py文件所在的绝对路径

例2:os.getcwd()

path1 = os.getcwd()#获取路径

此处定义了一个名为path1的变量用来存贮.py文件的绝对路径,用于之后的改名

os.path.join()

​ 将不同的路径相加,用于文件的改名

例3:os.path.join()

oldpath = os.path.join(path1+"\\dataset\\"+filename)

此处用os.path.join()将path1,字符串"\dataset\"和filename相加,获得了一个新的路径,并存储到oldpath这个变量里面

os.rename()

​ 顾名思义,将文件重命名,但是其中的路径为绝对路径

例4:os.rename()

os.renames(oldpath,newpath)

​ oldpath和newpath分别存贮文件旧,新的绝对路径,用该函数将其重命名

os.mkdir()

​ 创建文件夹

例5:os.mkdir()

os.mkdir("dataset")

创建dataset文件夹,路径与当前工程文件.py相同

for in 循环

​ 遍历列表

len()

​ 获取当前列表内的元素的个数,用于文件重命名

三:文件重命名及移动全流程思路

1.获取路径

2.使用os.listdir()得到全体文件的名字并输出为列表

3.使用for in循环,遍历该列表,对单个文件进行操作,直到遍历结束

3.1.获取filename(文件名),对其进行修改,得到newname(新文件名)

3.2.从文件名中得到分类信息,放置到路径中,实现对文件的分类

3.3.获取当前文件的oldpath(旧路径),对其进行修改,得到newpath(新路径)

3.4.对路径和名字进行拼接,得到oldpath和newpath

4使用os.rename()进行重命名及移动

四.代码展示

# -*- coding: utf-8 -*-
"""
Created on Tue Nov 10 13:26:28 2020

@author: 萝莉控萝莉
"""
"""
请放到与dataset文件夹相同路径下运行
"""

import os

i = 0#提示移动的计数
path = ".\\dataset"#设置数据所在路径
filelist = os.listdir(path)
for filename in filelist:
    oldname = filename
    oldname = "mnist_train"+oldname[-6:]
    #print(oldname)
    place = oldname[-5:-4]#获取目的文件夹编号
    num = os.listdir(".\\"+place)#获取目的文件夹内文件
    #print(num)
    num = len(num)#获取目的文件夹内文件数量
    num = num+1#获取新文件的数字编号
    #print(num)
    newname = oldname[:11]+"_"+str(num)+oldname[-4:]
    #print(newname)
    path1 = os.getcwd()#获取路径
    oldpath = os.path.join(path1+"\\dataset\\"+filename)
    #print(oldpath)
    newpath = os.path.join(path1+"\\"+place+"\\"+newname)
    #print(newpath)
    os.renames(oldpath,newpath)
    i=i+1
    if i%100==0:
        print("移动中")
print("移动成功")
os.mkdir("dataset")#创建被删除的dataset文件夹
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值