python :将文件夹下面的图片的名字导入到txt文件中

# -*- coding: utf-8 -*-
#将文件夹中图像的名字放在一个txt文件中
# 不知道为什么效果不是很好,到是也可以放进去,但是顺序不对

# P01 批量读取文件名,并将读取的文件名保存到指定路径下的txt中(带.*** 后缀)

import os
def ListFilesToTxt(dir, file, wildcard, recursion):
    exts = wildcard.split(" ")
    files = os.listdir(dir)
    for name in files:
        fullname = os.path.join(dir, name)
        if (os.path.isdir(fullname) & recursion):
            ListFilesToTxt(fullname, file, wildcard, recursion)
        else:
            for ext in exts:
                if (name.endswith(ext)):
                    file.write(name + "\n")
                    break

def ReadName():
    dir = "/home/robot/pictures/img_tracker"  # 读取文件路径
    outfile = "/home/robot/pictures/imgname.txt"                     # 将文件名写入Image.txt
    wildcard = ".png" # 读取jpg图片
    #   wildcard = ".jpg .txt .exe .dll .lib"      #要读取的文件类型;
    file = open(outfile, "w")
    if not file:
        print("cannot open the file %s for writing" % outfile)
    ListFilesToTxt(dir, file, wildcard, 1)
    file.close()

ReadName()

上面的程序在ubuntu下图片的名称在txt文件中是乱序的 ,

现在和上一篇文章中的按照原来文件中图片中的顺序重新命名,写了一个按照按照原来顺序将名称放入txt文件中

#- * - coding : utf - 8 - * -
import os
imgDirName = "/home/robot/pictures/img_tracker/"
txtDirName = "/home/robot/pictures/imgname.txt"

list_img_name = []
list_read_img = []
 
def delete_end_str(path,txtPath):
 
    filelist = os.listdir(path)
    txtfile = open(txtPath,"w")
    for filename in filelist:
        filename = path + filename
        list_img_name.append(filename)
 
        new_file_name = filename.split(".png")[0]
        list_read_img.append(new_file_name)
        list_read_img.sort()
 
    for i in range(len(list_read_img)):
        old_img_name =  list_read_img[i] + ".png"
        new_file_name = path +  str(i) + ".png"
        txt_img_name = str(i)+".png"
        os.rename(old_img_name, new_file_name)
        txtfile.write(txt_img_name + "\n")       

delete_end_str(imgDirName,txtDirName)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值