来源:
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!")