Python实用记录(四):os模块-去后缀或者改后缀/指定目录下图片或者子目录图片写入txt/csv

简介: 本文介绍了如何使用Python的os模块来操作文件,包括更改文件后缀、分割文件路径和后缀、将指定目录下的所有图片写入txt文档,以及将指定目录下所有子目录中的图片写入csv文档,并为每个子目录分配一个标签。

1.改后缀

这个代码是指定路径,但是里面的具体文件名不知道,能够罗列所有的指定文件名和修改后缀,如果要获取具体路径下的文件文件名和后缀看下面这个目录

import os
def read_evr_yuc(file_path):
    dirpaths=os.listdir(file_path)
    yuv_name=[]
    name=[]
    new_name=[]
    for i in dirpaths:
        yuv_name.append(i)
        portion=os.path.splitext(i) #把文件名拆分为名字和后缀
        if portion[1] == ".yuv": #指定里面所有yuv的后缀的文件
            newname = portion[0] + ".code"
            new_name.append(newname)
            name.append(portion[0])
    print(yuv_name)
    print(name)
    print(new_name)    

if __name__ == '__main__':
    file_path='D:/pycharm/match/huffman/yuc_file/'
    read_evr_yuc(file_path)

2.划分路径和文件名、后缀名

#########start 获取文件路径、文件名、后缀名############
def get_splitfile(filename):
    (filepath,tempfilename) = os.path.split(filename)
    (shotname,extension) = os.path.splitext(tempfilename)
    print(filepath)
    print(shotname)
    print(extension)
    return filepath,shotname,extension
#########end 获取文件路径、文件名、后缀名############

path='F:/Dataset/cool/1.jpg'
get_splitfile(path)

3.指定目录下所有的图片写入到txt文档

"""把指定目录下所有的图片写入到txt文档中"""
import os
img_path='F:/pycharm/Pytorch2TensorRT-master/face/'
txtfile='F:/pycharm/Pytorch2TensorRT-master/my_files/face.txt'
os.makedirs(os.path.dirname(txtfile),exist_ok=True)
dirpaths=os.listdir(img_path)
f=open(txtfile,'w')
for dirpath in dirpaths:
    # print(dirpath)
    path=os.path.join(img_path,dirpath)
    print(path)
    f.write(path+'\n')

4.指定目录下所有的子目录(写上对应的label)对应的所有图片写入到csv文档

import os,glob,cv2,random,csv
def work():
    name2label = {}
    path='pokemon/'
    for name in sorted(os.listdir(os.path.join(path))):
        # 得到全部子目录
        if not os.path.isdir(os.path.join(path, name)):
            # 用于判断对象是否为一个目录
            continue
        name2label[name] = len(name2label.keys())
    print(name2label)
    images = []
    for name in name2label.keys():
        images += glob.glob(os.path.join(path, name, '*.png'))
        images += glob.glob(os.path.join(path, name, '*.jpg'))
        images += glob.glob(os.path.join(path, name, '*.jpeg'))
    # print(len(images), images)
    random.shuffle(images)
    with open(os.path.join(path, 'face.csv'), mode='w', newline='') as f:
        writer = csv.writer(f)
        for img in images:  # 'pokemon\\bulbasaur\\00000000.png' os.sep不用距离根据\\和/进行划分
            print(img)
            img=img.replace('\\','/') # 将里面的\换/
            # name = img.split(os.sep)[-2]
            (filepath, tempfilename) = os.path.split(img) # 获取路径、图片文件名
            (filepath1, tempfilename1) = os.path.split(filepath) # 获取剩余路径下的文件路径、文件名
            (filename, extension) = os.path.splitext(tempfilename1) # 获取文件路径、文件名
            print(filename)
            label = name2label[filename]
            # pokemon/squirtle/00000183.jpg 4
            writer.writerow([img, label])
        print('writen into csv file:', filename)

    # read from csv file
    images, labels = [], []
    with open(os.path.join(path, 'face.csv')) as f:
        reader = csv.reader(f)
        for row in reader:
            # pokemon/squirtle\00000183.jpg 4
            img, label = row
            label = int(label)
            images.append(img)
            labels.append(label)
    assert len(images) == len(labels)
    return  images,labels
images,labels=work()
print(images,labels)
目录
相关文章
|
2月前
|
数据采集 Python
Python实用记录(七):通过retinaface对CASIA-WebFace人脸数据集进行清洗,并把错误图路径放入txt文档
使用RetinaFace模型对CASIA-WebFace人脸数据集进行清洗,并将无法检测到人脸的图片路径记录到txt文档中。
43 1
|
2月前
|
Python
Python实用记录(六):如何打开txt文档并删除指定绝对路径下图片
这篇文章介绍了如何使用Python打开txt文档,删除文档中指定路径的图片,并提供了一段示例代码来展示这一过程。
30 1
|
2月前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
60 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
2月前
|
计算机视觉 Python
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。
44 3
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
|
19天前
|
JavaScript 前端开发 Python
python中的OS模块的基本使用
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。博客分享前端技术及全栈开发经验,持续更新中,期待您的关注和支持!🎉🎉🎉
28 0
|
2月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
50 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
7月前
|
数据安全/隐私保护 Python
Python3给图片添加水印
Python3给图片添加水印
100 1
|
数据采集 分布式计算 搜索推荐
使用Python实现网页中图片的批量下载和水印添加保存
使用Python实现网页中图片的批量下载和水印添加保存
|
7月前
|
数据安全/隐私保护 Python
python 图片打水印 透明图片合并
python 图片打水印 透明图片合并
55 1
|
7月前
|
数据安全/隐私保护 计算机视觉 Python
如何使用Python给图片添加水印
如何使用Python给图片添加水印
121 0