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)
目录
相关文章
|
6月前
|
安全 Python
告别 os.path 的繁琐:拥抱 Python 的 pathlib
告别 os.path 的繁琐:拥抱 Python 的 pathlib
497 6
|
12月前
|
SQL 自然语言处理 数据库
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
306 5
|
6月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
478 3
|
6月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
1607 0
|
10月前
|
数据采集 Web App开发 JavaScript
基于Selenium的Python爬虫抓取动态App图片
基于Selenium的Python爬虫抓取动态App图片
750 68
|
数据采集 JSON 测试技术
如何在Python中高效实现CSV到JSON的数据转换
在实际项目中,数据格式转换是常见问题,尤其从CSV到JSON的转换。本文深入探讨了多种转换方法,涵盖Python基础实现、数据预处理、错误处理、性能优化及调试验证技巧。通过分块处理、并行处理等手段提升大文件转换效率,并介绍如何封装为命令行工具或Web API,实现自动化批量处理。关键点包括基础实现、数据清洗、异常捕获、性能优化和单元测试,确保转换流程稳定高效。
597 83
|
8月前
|
数据采集 存储 监控
Python爬虫实战:批量下载亚马逊商品图片
Python爬虫实战:批量下载亚马逊商品图片
|
8月前
|
数据采集 监控 算法
Python文件与目录比较全攻略:从基础操作到性能优化
文件比较的核心在于数据指纹校验,通过逐字节比对生成唯一标识,确保内容一致性。从标准库的os与filecmp到高性能第三方库如pydiffx,再到分布式与量子加密技术的未来趋势,文件比较广泛应用于数据备份、代码审查与系统监控等领域,是保障数据完整性的关键技术手段。
180 0
|
10月前
|
存储 机器学习/深度学习 人工智能
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
本文探讨了多模态RAG系统的最优实现方案,通过模态特定处理与后期融合技术,在性能、准确性和复杂度间达成平衡。系统包含文档分割、内容提取、HTML转换、语义分块及向量化存储五大模块,有效保留结构和关系信息。相比传统方法,该方案显著提升了复杂查询的检索精度(+23%),并支持灵活升级。文章还介绍了查询处理机制与优势对比,为构建高效多模态RAG系统提供了实践指导。
2497 0
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
|
11月前
|
Python
Python教程:os 与 sys 模块详细用法
os 模块用于与操作系统交互,主要涉及夹操作、路径操作和其他操作。例如,`os.rename()` 重命名文件,`os.mkdir()` 创建文件夹,`os.path.abspath()` 获取文件绝对路径等。sys 模块则用于与 Python 解释器交互,常用功能如 `sys.path` 查看模块搜索路径,`sys.platform` 检测操作系统等。这些模块提供了丰富的工具,便于开发中处理系统和文件相关任务。
481 14