Python--批量修改文件夹名称,将txt中的每一行单独生成一个txt

注意::::改完就变了,所以一定要有备份,以防不小心改错了!!!!!!!!

 需求:

原来是00000

现在是0


import os
# 先读到一个列表里
files = os.listdir("D:\\dataset\\myGTSRB")
print(files)
i=0
for file in files:
    ori = "D:\\dataset\\myGTSRB_" + os.sep + file
    new = "D:\\dataset\\myGTSRB_" + os.sep + str(i)
    os.rename(ori,new)
    i+=1
print(files)

 需求:

原来是这样的001.Black_footed_Albatross

现在是这样的001_Black_footed_Albatross

import os
import re
import sys
yuan = "" #原文件的目录
xian = "" # 现文件夹目录

fileList = os.listdir(yuan) # 输出此文件夹中包含的文件名称
os.chdir(xian)# 将当前工作目录修改为待修改文件夹的位置

# 名称变量
num = 1
# 遍历文件夹中所有文件
for fileName in fileList:
    number,name = fileName.split(".")
    os.rename(yuan+"\\"+fileName, xian+"\\"+number+"_"+name)
    # 改变编号,继续下一项
    num = num + 1
print("***************************************")

 后来又用了一次,第一段代码,参考https://blog.csdn.net/u011622434/article/details/93876821

"""
将每一行单独生成一个txt文件夹
"""

def gen_single_txt():
    import re
    f = open('new.txt', 'r')
    f1 = f.readlines()
    for i in f1:
        p = '%s.txt' % re.findall("(.*).jpg.*", i)  # 返回string中所有与pattern相匹配的全部字串,返回形式为数组
        print(p)
        with open(p, 'w')as a:
            a.write(i)


"""
但是返回的是['00599'].txt的文件夹名称,还要进行批量修改文件夹
"""


def alter_file_name():
    import os
    yuan = r"D:\CANRUN\efficientnet-yolo3-pytorch-master\model_data\txt_old"
    xian = r"D:\CANRUN\efficientnet-yolo3-pytorch-master\model_data\txt_new"
    fileList = os.listdir(yuan)  # 输出此文件夹中包含的文件名称
    num = 1  # 遍历文件夹中所有文件
    for fileName in fileList:
        number, name = fileName.split(".")  # 匹配文件名正则表达式
        os.rename(yuan + "\\" + fileName, xian + "\\" + number[2:7] + "." + name)
        num = num + 1  # 改变编号,继续下一项
    print("***************************************")

if __name__ == '__main__':
    gen_single_txt() # 先改成了这样['00599'].txt
    alter_file_name() # 再改成了这样00599.txt
    """
    本来一步到位的事情,因为我不会用正则,呜呜呜
    """

可以结合https://blog.csdn.net/weixin_42630613/article/details/107842834

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值