常用python程序

2023-11-18

压缩文件

import zipfile
import os
def zipDir(dirpath,outFullName):
    """
    压缩指定文件夹
    :param dirpath: 目标文件夹路径
    :param outFullName: 压缩文件保存路径+xxxx.zip
    :return: 无
    """
    zip = zipfile.ZipFile(outFullName,"w",zipfile.ZIP_DEFLATED)
    for path,dirnames,filenames in os.walk(dirpath):
        # 去掉目标跟路径,只对目标文件夹下边的文件及文件夹进行压缩
        fpath = path.replace(dirpath,'')

        for filename in filenames:
            zip.write(os.path.join(path,filename),os.path.join(fpath,filename))
    zip.close()
zipDir("/home/aistudio/exp_1/out","/home/aistudio/submission.zip")

 

一个文件夹内的图片复制到另一个文件夹,文件夹可以不为空。

src_path源文件夹  target_path目标文件

import os
 
def copy_dir(src_path, target_path):
	if os.path.isdir(src_path) and os.path.isdir(target_path):		
		filelist_src = os.listdir(src_path)							
		for file in filelist_src:
			path = os.path.join(os.path.abspath(src_path), file)	
			if os.path.isdir(path):
				path1 = os.path.join(os.path.abspath(target_path), file)	
				if not os.path.exists(path1):						
					os.mkdir(path1)
				copy_dir(path,path1)			
			else:								
				with open(path, 'rb') as read_stream:
					contents = read_stream.read()
					path1 = os.path.join(target_path, file)
					with open(path1, 'wb') as write_stream:
						write_stream.write(contents)
		return 	True	
						
	else:
		return False	
copy_dir('exp_1/out', 'work/train/label')

对应图像分割划分数据集  不让预测图片进验证集(只可运行一次)

# 划分训练集/验证集,并生成文件名列表

import random
import os.path as osp
from glob import glob


# 随机数生成器种子
RNG_SEED = 114514
# 调节此参数控制训练集数据的占比
TRAIN_RATIO = 0.8
# 数据集路径
DATA_DIR = '/home/aistudio/work'


def write_rel_paths(phase, name, out_dir, prefix=''):
    """将文件相对路径存储在txt格式文件中"""
    with open(osp.join(out_dir, phase+'.txt'), 'a') as f:
        f.write(
            ' '.join([
                osp.join(prefix, 'A', name),
                osp.join(prefix, 'B', name),
                osp.join(prefix, 'label', name)
            ])
        )
        f.write('\n')

def write_rel_paths_1(phase, names, out_dir, prefix=''):
    """将文件相对路径存储在txt格式文件中"""
    with open(osp.join(out_dir, phase+'.txt'), 'w') as f:
        for name in names:
            f.write(
                ' '.join([
                    osp.join(prefix, 'A', name),
                    osp.join(prefix, 'B', name),
                    osp.join(prefix, 'label', name)
                ])
            )
            f.write('\n')



random.seed(RNG_SEED)


# 随机划分训练集/验证集
names = list(map(osp.basename, glob(osp.join(DATA_DIR, 'train', 'label', '*.png'))))
# 对文件名进行排序,以确保多次运行结果一致
names.sort()
random.shuffle(names)
len_train = int(len(names)*TRAIN_RATIO) # 向下取整
num=0
for name in names:
    num +=1
    if name.split('_')[0] == 'train':
        if num<=len_train:
            write_rel_paths('train', name, DATA_DIR, prefix='train')
        else:
            write_rel_paths('val', name, DATA_DIR, prefix='train')
    else:
        write_rel_paths('train', name, DATA_DIR, prefix='train')
write_rel_paths_1(
    'test', 
    map(osp.basename, glob(osp.join(DATA_DIR, 'test', 'A', '*.png'))), 
    DATA_DIR,
    prefix='test'
)


print("数据集划分已完成。")

删除全黑标签

import cv2 
import numpy as np 
import os

!rm -rf data/data134796/dataset/train/label/.ipynb_checkpoints

filenames = 'work/train/label'
for filename in os.listdir(filenames):
    file = filenames + '/' +  filename
    print(file)
    image = cv2.imread(file)
    
    #print(image.shape)
    #print(image)
    if image.any() == np.zeros((1024,1024,3)).any():
        os.remove(file)
        print('文件删除')
    else:
        print('不全为0')

print("完成")

 删除不对应的图片

# !cd data/data134796/dataset/train
import os
#根据标签删除图片   标签少图片多
images_dir = 'work/train/A'
xml_dir = 'work/train/B'
# 创建列表
xmls = []
# 读取xml文件名(即:标注的图片名)
for xml in os.listdir(xml_dir):
    # xmls.append(os.path.splitext(xml)[0])    #append()参数:在列表末尾添加新的对象,即将所有文件名读入列表
    xmls.append(xml.split('.')[0])  # splitext和split的区别:前者('0001','.jpg'), 后者('0001','jpg') 在此可选用
#print(xmls)
#os.remove(data/data134796/dataset/train/label\.ipynb_checkpoints)
# 读取所有图片
for image_name in os.listdir(images_dir):
    
    #print(image_name)
    if image_name.split('_')[0] == 'train':
        image_name = image_name.split('.')[0]
        if image_name not in xmls:
            image_name = image_name + '.png'
            print(image_name)
            os.remove(os.path.join(images_dir, image_name))
    else:

        continue
    
    

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

常用python程序 的相关文章

  • 2d 图像点和 3d 网格之间的交点

    Given 网格 源相机 我有内在和外在参数 图像坐标 2d Output 3D 点 是从相机中心发出的光线穿过图像平面上的 2d 点与网格的交点 我试图找到网格上的 3d 点 This is the process From Multip
  • LibreOffice 并行将 .docx 转换为 .pdf 效果不佳

    我有很多 docx 文件需要转换为 pdf 将它们一一转换需要很长时间 所以我编写了一个 python 脚本来并行转换它们 from subprocess import Popen import time import os os chdi
  • 定义Python源代码编码的正确方法

    PEP 263 http www python org dev peps pep 0263 定义如何声明Python源代码编码 通常 Python 文件的前两行应以以下内容开头 usr bin python coding
  • 如何在python中附加两个字节?

    说你有b x04 and b x00 你如何将它们组合起来b x0400 使用Python 3 gt gt gt a b x04 gt gt gt b b x00 gt gt gt a b b x04 x00
  • 如何调整 matplotlib 单选按钮的大小和纵横比?

    我已经尝试了几个小时来使简单的单选按钮列表的大小和纵横比正确 但没有成功 首先 导入模块 import matplotlib pyplot as plt from matplotlib widgets import RadioButtons
  • 尝试从网页Python和BeautifulSoup获取编码

    我试图从网页检索字符集 这会一直改变 目前我使用 beautifulSoup 来解析页面 然后从标题中提取字符集 这工作正常 直到我遇到一个网站 到目前为止 我的代码以及与其他页面一起使用的代码是 def get encoding soup
  • Python re无限执行

    我正在尝试执行这段代码 import re pattern r w w s re compiled re compile pattern results re compiled search COPRO HORIZON 2000 HOR p
  • 指示电子邮件的类型

    我有以下自动化程序 它将电子邮件发送给我自己 并添加了特定的链接 import win32com client as win32 import easygui import tkinter as to from tkinter import
  • 检查 python 中命令行参数的数量

    我是蟒蛇新手 还是把脚弄湿了 我正在尝试做这样的事情 import sys if len sys argv lt 3 or lt len sys argv gt 3 print This script will compare two fi
  • 如何获取numpy.random.choice的索引? - Python

    是否可以修改 numpy random choice 函数以使其返回所选元素的索引 基本上 我想创建一个列表并随机选择元素而不进行替换 import numpy as np gt gt gt a 1 4 1 3 3 2 1 4 gt gt
  • python celery -A 的无效值无法加载应用程序

    我有一个以下项目目录 azima init py main py tasks py task py from main import app app task def add x y return x y app task def mul
  • 在Python中读取tiff标签

    我正在尝试用 Python 读取 tiff 文件的标签 该文件是 RGB 的uint16每个通道的值 我目前正在使用tifffile import tifffile img tifffile imread file tif 然而 img是一
  • Python“非规范化”unicode 组合字符

    我正在寻找标准化 python 中的一些 unicode 文本 我想知道是否有一种简单的方法可以在 python 中获得组合 unicode 字符的 非规范化 形式 例如如果我有序列u o xaf i e latin small lette
  • 如何在 Seaborn 中的热图轴上表达类

    我使用 Seaborn 创建了一个非常简单的热图 显示相似性方阵 这是我使用的一行代码 sns heatmap sim mat linewidths 0 square True robust True sns plt show 这是我得到的
  • 使用 selenium 和 python 来提取 javascript 生成的 HTML?萤火虫?

    这里是Python新手 我遇到的是数据收集问题 我在这个网站上 当我用 Firebug 检查我想要的元素时 它显示了包含我需要的信息的源 然而常规源代码 没有 Firebug 不会给我这个信息 这意味着我也无法通过正常的 selenium
  • 如何通过函数注释指示函数需要函数作为参数,或返回函数?

    您可以使用函数注释 http www python org dev peps pep 3107 在python 3中指示参数和返回值的类型 如下所示 def myfunction name str age int gt str return
  • 仅允许正小数

    在我的 Django 模型中 我创建了一个如下所示的小数字段 price models DecimalField u Price decimal places 2 max digits 12 显然 价格为负或零是没有意义的 有没有办法将小数
  • 在 numpy 中连接维度

    我有x 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 2 3 I want 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 6 也就是说 我想连接中间维度的所有项目 在这种特殊情况下我可以得到这
  • 将时间添加到日期时间

    我有一个像这样的日期字符串 然后使用strptime 所以就像这样 my time datetime datetime strptime 07 05 15 m d Y 现在我想添加 23 小时 59 分钟my time 我努力了 timed
  • django jet 中的自定义徽标

    我目前正在尝试对 django 管理面板的皮肤进行一些定制 以使其更符合我们的品牌 目前我们使用 django jet 来美化管理面板 django jet 可以自定义 css html 吗 所有评论都说我应该更改一些 html 文件 但我

随机推荐

  • python爬虫——爬取快读小说app

    1 爬取结果 csv文件 出现了有两个表头 不明所以 无关大雅 2 使用fiddler4进行抓包 通过观察url 我们不难发现其中的规律 要实现进行分类抓取 需要更改url第一个数字 如下 https sc canrike com Cate
  • 用16进制的格式查看文件

    od Ax tx1 filename
  • 上传码云_vue-egg 简单的图片上传

    源码已上传码云 小朋友 vue egg 简单的图片上传 知乎视频 www zhihu com VSCode终端不能使用命令 惟愿安好ly 博客园 www cnblogs com 上传用的是 iview design 的 Upload 组件
  • Conda常见命令总结

    以下是常见的conda命令列表 conda create 创建新的虚拟环境 安装指定的包 conda activate 激活虚拟环境 conda deactivate 停用当前虚拟环境 conda list 列出已安装的包 conda se
  • 能连蓝牙键盘吗_300多的小键盘,颜值很能打,GANSS ALT71蓝牙双模机械键盘很香...

    关于键盘配列 你是60 70 80 90 还是100 党 反正上述这些配列差不多我都集齐了 GANSS ALT71正好填补了70 的空缺 这次分享录制了视频 wifi足的可以看这个 更换封面 05 58 视频尚未发布 暂时无法播放 wifi
  • 启动hadoop时候报错:localhost: ssh: Could not resolve hostname localhost: Temporary failure in name resolut...

    这个错误是由于配置文件没有配置好 解决方案如下 1 打开profile文件 vim etc profile 2 在文件最后加入的内容应该如下 高亮的两句一般是大家缺少的 export JAVA HOME usr java jdk expor
  • EasyPoi导入Excel中的图片,空指针异常

    官方文档 1 1 介绍 Powered by MinDoc 导入easypoi依赖 版本可以选择最新的
  • element table显示滚动条

    1 tableX为要显示滚动条的类名 2 显示横向滚动条 3 tableX el table scrollable x el table body wrapper 4 padding 0 0 5px 0 5 margin 0 0 5px 0
  • 【最新】手把手教你在VMware中安装Ubuntu虚拟机

    手把手教你在Vmware中安装Ubuntu虚拟机 一 下载VMware和Ubuntu系统官方镜像 1 下载VMware 2 下载Ubuntu系统官方镜像 二 安装VMware和Ubuntu虚拟机 1 安装VMware 2 安装Ubuntu镜
  • 电源学习总结(二)——线性稳压主要特点及原理

    文章目录 主要特点 内部结构 常见的三端线性稳压 AMS1117 主要特点 线性稳压最为突出的优点主要有成本低 噪声低 体积小 由于线性稳压结构简单 生产相对容易 因此其生产成本可以很低 同时其需要的外围器件也很少 一般只需要在输入端和输出
  • 【Python】教你写一个一键上传git的脚本(打包成exe)

    本篇博客来教你用Python写一个简单的git自动上传脚本 前言 为什么需要一个这样的东西 有的时候 我的学习代码其实没啥好commit的 写一个自动上传的脚本 就可以自动执行完所有的命令 而不需要自己手动进行git三板斧操作 项目代码已开
  • unplugin-vue-components 源码原理分析

    unplugin vue components 是一款按需自动导入Vue组件的库 支持 Vue2 和 Vue3 同时支持组件和指令 使用此插件库后 不再需要手动导入组件 插件会自动识别按需导入组件以及对应样式 我们只需要像全局组件那样使用即
  • 【笔记】SemGCN

    一 论文总结 1 1 核心贡献 提出了一种改进的图卷积操作 称为语义图卷积 SemGConv 它源自cnn 其关键思想是学习图中暗示的边的信道权值 然后将它们与核矩阵结合起来 这大大提高了图卷积的能力 其次 我们引入了SemGCN 其中Se
  • Unity PlayerPrefs(数据持久化)

    PlayerPrefs Unity3D中的数据持久化是以键值的形式存储的 可以看作是一个字典 Unity3D中值是通过键名来读取的 当值不存在时 返回默认值 目前Unity3D中只支持int string float三种数据类型的读取 参考
  • android开发工具!Android性能优化常见问题,灵魂拷问

    前言 今年上半年其实就已经有了换工作的想法 奈何疫情原因和岗位缩减 加之信心不足 到六月底投递了百度的Android岗位 本以为像我这种非211 985没工作经验的渣渣只能被直接pass 结果却意外的收到了电话 真是受宠若惊 经过电面 技术
  • 51单片机入学第八课——8*8点阵屏

    文章目录 LED点阵屏 点阵屏电路图 74HC595芯片 串入并出 使用方法 编程 点亮一个点 显示汉字 PCtoLCD 2002 编写代码 总结 LED点阵屏 LED点阵屏和数码管工作都是是靠二极管发光 但工作原理与矩阵键盘有些类似 在后
  • springboot2.0整合logback日志(详细)

    一 近期自己的项目想要一个记录日志的功能 而springboot本身就内置了日志功能 然而想要输入想要的日志 并且输出到磁盘 然后按天归档 或者日志的切分什么的 自带的日志仅仅具有简单的功能 百度了一番 总结如下 适合大多数的应用场景 二
  • python线程池ThreadPoolExecutor使用

    假设我们必须多线程任务创建大量线程 由于线程太多 因此可能会有很多性能问题 这在计算上会是最昂贵的 一个主要问题可能是吞吐量受限 我们可以通过创建一个线程池来解决这个问题 一个线程池可以被定义为一组预先实例化和空闲的线程 它们随时可以开始工
  • 微信小程序请求库的封装方法

    1 文档地址 微信官方文档 wx request网络请求 2 项目使用 根目录下新建utils gt request js 作为请求通用库 接口地址 const DEV URL http localhost 22667 const PROD
  • 常用python程序

    压缩文件 import zipfile import os def zipDir dirpath outFullName 压缩指定文件夹 param dirpath 目标文件夹路径 param outFullName 压缩文件保存路径 xx