python os模块练习(列表去重,递归提取文件,CV2图像resize(批量)。。。)

本文介绍了使用Python进行文件操作的技巧,包括列表去重、递归提取文件、批量图像resize及文件过滤等。同时,提供了如何处理图像,如读取、调整大小并保存的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python列表去重:

import os
fileName=os.listdir(r'地址')
list1=[]
for file in fileName:
    if file not in list1:
        list1.append(file)
print(list1)

python递归提取文件:

import os,shutil

FileList=[]
def getfile(path):#可以先定义一个path地址
    allfile=os.listdir(path)
    print(allfile)
    for file in allfile:
        filepath=os.path.join(path,file)
        if os.path.isdir(filepath):
            print("目录:",file)
            getfile(filepath)
        elif os.path.isfile(filepath):
            print("底层文件:",file)
            FileList.append(file)
            shutil.copy(filepath,r'C:\Users\Administrator\Desktop\001')#保存到另一个文件夹

CV2图像resize:

import os
import cv2

path='C:/Users/Administrator/Desktop/001/'
ImageNames=os.listdir(path)
# 单体处理
# image=cv2.imread('C:/Users/Administrator/Desktop/001/S0027_z100292_20190419092026.jpg')
# response=cv2.resize(image,(600,480),interpolation=cv2.INTER_CUBIC)
# cv2.imwrite('C:/Users/Administrator/Desktop/001/S0027_z100292_20190419092026.jpg',response)
#批量处理测试
for file in ImageNames:
    image=cv2.imread(os.path.join(path,file))#批量处理不同于单体处理的地方就是这里一定递归把文件路径组合起来
    rsp=cv2.resize(image,(600,480),interpolation=cv2.INTER_CUBIC)
    cv2.imwrite('C:/Users/Administrator/Desktop/001/'+file,rsp)

python 提取前缀名相同的文件:

import os
import shutil

path=r'C:\Users\Administrator\Desktop\001'
fileName=os.listdir(path)

for file in fileName:
    filepath=os.path.join(path,file)
    if file.startswith('void'):
        shutil.copy(filepath,r'C:\Users\Administrator\Desktop\002')

python过滤文件不对应:

import  os

def select_xml():
    list = os.listdir(r'C:\Users\Administrator\Desktop\002')
    list1=[]
    for item in list:
        if item.endswith(".xml"):
            list1.append(item.rsplit('.xml'))
    return list1
def select_jpg():
    list = os.listdir(r'C:\Users\Administrator\Desktop\002')
    list2 = []
    for item in list:
        if item.endswith(".jpg"):
            list2.append(item.rsplit('.jpg'))
    return list2
a=select_xml()
b=select_jpg()
def panduan_():#这个函数的功能是判断.jpg后缀的图片有没有对应的.xml文件,如果没有就打印出来
    list3=[]
    for i in range(0,len(a)-1):
        if a[i] not in b:
            print(a[i])
            list3.append(a[i])
    return list3
panduan_()

if __name__ == '__main__':
    panduan_()
参考资源链接:[Python实现SSRNetV2杂草识别源码及数据集发布](https://wenku.youkuaiyun.com/doc/52a8f7kvqu?utm_source=wenku_answer2doc_content) 要使用Python实现SSRNetV2进行杂草图像的高精度识别,首先你需要了解Python编程以及相关的机器学习库,如TensorFlow或PyTorch。SSRNetV2作为自组织递归神经网络的一种,其特点是能通过递归的方式处理图像序列并进行有效的特征提取。以下是实现步骤和代码示例: 步骤一:准备环境 确保你的Python环境中安装了TensorFlow或PyTorch,以及其他必要的库,比如OpenCV用于图像处理,NumPy用于数据操作。 步骤二:导入必要的库和模块 ```python import cv2 import numpy as np from tensorflow.keras.models import load_model ``` 步骤三:加载SSRNetV2模型 使用提供的源码文件加载SSRNetV2模型。如果资源中包含了预训练的权,你需要先加载这些权。 ```python model = load_model('path_to_your_model.h5') ``` 步骤四:预处理图像数据 杂草图像需要经过预处理才能用于模型预测。这通常包括图像缩放、归一化等步骤。 ```python def preprocess_image(image_path, target_size): image = cv2.imread(image_path) image = cv2.resize(image, target_size) image = image.astype('float32') / 255.0 image = np.expand_dims(image, axis=0) return image ``` 步骤五:进行图像识别 使用加载好的模型和预处理后的图像进行预测。 ```python target_size = (224, 224) # 根据模型的要求设置 image_path = 'path_to Weed_image.jpg' image = preprocess_image(image_path, target_size) predictions = model.predict(image) # 根据预测结果判断杂草类型,阈值可以根据实际情况调整 weed_type = np.argmax(predictions) ``` 步骤六:输出结果 输出识别的杂草类型。 ```python print(f 参考资源链接:[Python实现SSRNetV2杂草识别源码及数据集发布](https://wenku.youkuaiyun.com/doc/52a8f7kvqu?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值