Python文件操作-程序员宅基地

技术标签: python  Python  

来源:

https://www.bilibili.com/video/BV1jz411b7DH?p=11

在这里插入图片描述python生成3X3浮点型数组:

Confusion_Matrix = np.ones((3,3))*0    # 浮点型数组

python生成3X3整型数组:

Confusion_Matrix = [[0 for i in range(3)] for i in range(3)]  # 整型数组

文本文件的写入

在这里插入图片描述示例程序:

f=open("a.txt","a")
s="上学\n程序员\n"
f.write(s)
f.close()

a.txt内容:
在这里插入图片描述
再次执行以上程序:
在这里插入图片描述在这里插入图片描述若没有f.close()则可能造成操作系统资源的浪费。

结合异常机制finally确保关闭文件对象

程序:

try:
    f=open(r"01.txt","a")
    str="abcdefg"
    f.write(str)
except BaseException as e:
    print(e)
finally:
    f.close()

无论程序是否出现异常都会执行f.close()
在这里插入图片描述

with语句(上下文管理器)

在这里插入图片描述示例:

with open(r"1.txt","a") as f:
    f.write("abcdefg!")

文本文件的读取

在这里插入图片描述
示例程序:
在这里插入图片描述

推导式生成列表

enumerate函数使用示例:
a=["one \n","two \n","three \n"]
print(a)
c=[temp+" #"+str(index) for index,temp in enumerate(a)]
print(c)

输出结果:
在这里插入图片描述去掉 \n :

# 去掉 \n 去掉空白符
d=[temp.rstrip()+" #"+str(index) for index,temp in enumerate(a)]
print("d:",d)

结果:
在这里插入图片描述
读取文本中每一行的内容,修改后,再按行写入另一个文件中,程序示例:
在这里插入图片描述

二进制文件的读写

在这里插入图片描述

图片文件拷贝:
with open("result.jpg","rb") as f:
    with open("Result1.jpg","wb") as w:
        for line in f.readlines():
            w.write(line)

print("copy is OK!")

文件对象的常用属性和方法

在这里插入图片描述

文件对象的打开模式

在这里插入图片描述

文件对象的常用方法

在这里插入图片描述

使用pickle序列化

在这里插入图片描述

将对象序列化到文件中

在这里插入图片描述

将获得的数据反序列化成对象

在这里插入图片描述

CSV文件的操作

在这里插入图片描述

CSV文件的读写

在这里插入图片描述

经典例程

统计目录下.png图片个数并写入.txt文件,同时将所有.png文件重命名为.jpg文件。

import os

need_find_path = '/media/ys/OS/师兄程序/Facial Expression Recognition/Challenge-condition-FER-dataset-master/AffectNet_dir/simple_sample/args_img_dir_train_me/7'  # 需要操作的目录
png_count = 0 
for root,dirs,files in os.walk(need_find_path):  # 遍历当前目录的文件夹、文件
    for file in files:  # file内容:0011bbdb3ec204e90639492cca028f292801fae9448a730b800908b3.jpg
        front_name = file.split(".")[0]  # 文件名
        end_name = file.split(".")[1]  # 后缀名
        end_name = end_name.lower()   # 将后缀名字符串转化为小写
        # print(end_name)  # 输出jpg,注意,这里没有点        
        if end_name=="png":
            oldfilePath = os.path.join(need_find_path,file)
            png_count = png_count + 1
            
            with open(r"/home/ys/Desktop/png_jpg_document/result_train_7.txt","a") as f:
                # f.write(file+"\n")     # 依次写入指定文档
                f.writelines(file+"\n")
            
            new_name = front_name + ".jpg"
            newFilePath = os.path.join(need_find_path,new_name)
            os.rename(oldfilePath, newFilePath)    # 将图像重命名

print("png_count:",png_count)
print("Finish!")
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42026651/article/details/109709560

智能推荐

c语言数组的排序递归,C语言:用递归的方式对数组排序-程序员宅基地

文章浏览阅读1.1k次。原题如下:编写程序,要求用户录入一串整数(把这串整数存储在数组中),然后通过调用selection_sort函数来排列这些整数。在给定n个元素的数组后,election_sort函数必须做下列工作:搜索数组找出最大的元素,然后把它移到数组的最后面;递归的调用函数本身对前面的n-1个数组元素进行排序。下面是我自己写的程序:(运行结果不对,求大神指导!!!)#include #define N 8in..._c语音递归n从高到低排序

ElasticSearch亿级数据毫秒查询实现_亿级数据模糊查询用什么数据库-程序员宅基地

文章浏览阅读6.1k次,点赞5次,收藏12次。面临问题:很多时候数据量大了,特别是有几亿条数据的时候,可能你会发现,跑个搜索怎么一下 5~10s。第一次搜索的时候,是 5~10s,后面反而就快了,可能就几百毫秒。说实话,ES 性能优化是不可能随手调一个参数,就可以万能的应对所有的性能慢的场景。也许有的场景是你换个参数,或者调整一下语法,就可以搞定,但是绝对不是所有场景都可以这样。性能优化:Filesystem Cache你往 ES..._亿级数据模糊查询用什么数据库

Python量化交易学习笔记(35)——backtrader多股回测避坑2_indexerror: array assignment index out of range-程序员宅基地

文章浏览阅读6.8k次。本文继续记录多股回测时遇到的异常情况。坑描述backtrader在读取日线数据时,会自动给date数据添加“时:分:秒.毫秒(23:59:59.999990)”信息。而通常用户在指定回测周期的开始和结束日期时,只会精确到日,时分秒信息会被backtrader默认以0补全。由于上述两个事实的存在,假如用户指定回测周期的结束日期有日线数据(由于非交易日、停盘等原因,可能没有日线数据),那么在backtrader中,回测周期的结束时间就会被设定为该日的00:00:00,而backtrader读_indexerror: array assignment index out of range

检索之 乘积量化(Product Quantization)_乘积量化检索-程序员宅基地

文章浏览阅读1.9k次。本文转载自:https://www.cnblogs.com/mafuqiang/p/7161592.html乘积量化1。简介  乘积量化(PQ)算法是和VLAD算法是由法国INRIA实验室一同提出来的,为的是加快图像的检索速度,所以它是一种检索算法,在矢量量化(Vector Quantization,VQ)的基础上发展而来,虽然PQ不算是新算法,但是这种思想还是挺有用处的,本文没有添加公式。  它..._乘积量化检索

样本熵(Python实现)_样本熵电池代码-程序员宅基地

文章浏览阅读6.2k次,点赞8次,收藏39次。1. 基本概念1.1 熵熵原本是一个热力学概念,是用来描述热力学系统混乱(无序)程度的度量。在信息论建立之后,关于上的概念和理论得到了发展。作为衡量时间序列中新信息发生率的非线性动力学参数,熵在众多的科学领域得到了应用。八十年代最常用的熵的算法是K-S熵及由它发展来的E-R熵,但这两种熵的计算即使对于维数很低的混沌系统也需要上万点的数据,而且它们对于噪声很敏感,时间序列叠加了随机噪声后这两种熵的计算可能不收敛。1.2 近似熵近似熵(APEN, Aproximate Entropy),是由Pincus_样本熵电池代码

BeanFactory和FactoryBean以及ApplicationContext的区别_beanfactory与factorybean和applicationcontext的区别-程序员宅基地

文章浏览阅读932次。BeanFactoryBeanFactory是IOC最基本的容器,负责生产和管理bean,它在为其他具体的IOC容器提供了最基本的规范,例如XmlBeanFactory、ApplicationContext等具体的挺起都实现了BeanFactory,再在其基础上附加了其他功能BeanFactory源码package org.springframework.beans.factory; ..._beanfactory与factorybean和applicationcontext的区别

随便推点

「Arm Arch」 虚拟化微架构_hypervisor arm-程序员宅基地

文章浏览阅读280次。全文3000字,预计阅读时长:8分钟适用于从事ARM软硬件设计、开发、调试的工程师、教师以及学生对于大部分开发者来讲,ARM架构知识一直存放于盲盒之中,知之甚少;而ARM架构知识是ARM结构化知识中非常关键的一部分,它的缺失,会导致我们对于问题的系统化思考难以进行。所以增设了《ARM架构知多少-A系列》专栏来和大家一起学习ARM架构,完善知识结构,拓展系统思考边界。_hypervisor arm

【Xilinx】基于DMA的adc读取_adc数据长度为什么是1920-程序员宅基地

文章浏览阅读1.1k次。硬件环境:ZYNQ7000软件环境:petalinux2018.2 xilinx_vivado_sdk2018.2学习例程:1、DMA初始化1)定义变量//定义ioctrl的命令#define AXI_ADC_IOCTL_BASE 'W'#define AXI_ADC_SET_SAMPLE_NUM _IO(AXI_ADC_IOCTL_BASE, 0)#define AXI_ADC_SET_DMA_LEN_..._adc数据长度为什么是1920

审计日志在分布式系统中的应用_审计日志定义-程序员宅基地

文章浏览阅读5.4k次,点赞3次,收藏9次。前言分布式系统的执行环境往往是异常复杂的,很多情况涉及到多节点间的消息通信。相比较于单节点系统而言,分布式系统在问题追踪,排查方面显然也复杂很多。那么这个时候,在分布式系统中,增加哪些类型的日志数据,来帮助我们发现和定位问题呢?答案就是我们今天将要阐述的审计日志(Audit log)。审计日志的概念很多人可能在想这样一个问题:同样是日志,审计日志和普通的日志,区别在于哪里呢?审计日志,..._审计日志定义

conda虚拟环境总结与解读_conda 环境-程序员宅基地

文章浏览阅读7k次,点赞19次,收藏54次。csdn上有很多关于conda的文章,但是一直没有一个宏观一些的文章,我将从宏观角度出发,对文章进行一个整合,解读,将新同学从conda环境入门到配置,应用全流程进行解读。当然,这篇文章因为是宏观一些,可能很多同学不能一次性看懂,没关系,这个可以反复看,在不同阶段都可以提供帮助。......_conda 环境

HashMap与TreeMap的排序以及四种遍历方式_treehash的遍历方法-程序员宅基地

文章浏览阅读593次。一、Map概述1、Map是将键映射到值( key-value )的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。2、Map与Collection的区别(1)Map 是以键值对的方式存储元素,键唯一,值可以重复。(2)Collection存储的是单列元素,子接口Set元素唯一,子接口List可以重复。(3)Map的数据结构针对键有效,跟值无关..._treehash的遍历方法

K8S调度机制和Pod基本故障排查_pod崩溃一般怎么排查-程序员宅基地

文章浏览阅读704次。目录一、调度约束过程解析1.1、调度方式1.2、示例1 nodeName1.3、示例2 nodeSelector二、故障排除2.1、故障现象2.2、排查思路一、调度约束过程解析1、首先,用户可以通过kubectl命令或者dashborad、API调用的方式(用作开发)来创建资源,和管理资源(Kubernetes通过watch的机制进行每个组件的协作,每个组件之间的设计实现了解耦)2、用户提交创建资源的请求给API Server,API Server将创建资源的元信息(属性信息)写入到etcd中,et_pod崩溃一般怎么排查