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!")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值