Python学习笔记-Day6

Python学习笔记-Day6

文件处理

  1. I/O input/print输入和输出流
  2. 字符串格式化
  3. open/close
  4. 读取文件内容
  5. 写入文件
  6. json序列化
  7. csv文件读取

文件处理是项目开发中使数据持久化和获取配置的主要方式。我们在平时的工作中接触到各种文件类型,比如 word、视频、txt文本等。Python 中提供了很方便读写文件的函数,可以很方便的处理各种类型的文件。

1、I/O input/print输入和输出流

复制代码
a = input("place input your name:")

字符串格式化

旧式格式化 %格式化

复制代码
print("%s is %d is year old" % ('youzi',19))  

新式格式化 str.format()

复制代码
print("{} is {:.0f} is year old".format('youzi',19.333333333333333))

解释:{:.0f}
意思是保留0位小数

操作说明符

复制代码
%s 字符串  
%d 整数  
%f 浮点数  
%.2f 保留2位小数  
%x 十六进制  
%o 八进制  
%e 科学计数法

open/close

常用权限字符:

复制代码
r:读
w:写
a:追加
b:二进制的方式打开
wb:二进制写入
rb:二进制读取

file = open("F:\\exec.txt")  #定义路径,并open类型打开文件  
print(type(file)) #查看变量类型  
print(file)  #打印文件,内容是文本文件对象内容  
file.close() #关闭文件

with open()

复制代码
with open("F:\\exec.txt",'r',encoding="utf-8") as f:  
     print(f.read())  
  
file = open("F:\\exec.txt",'r',encoding="utf-8")  
with file as f:  
    print(f.read())

打开文件计算行数

复制代码
file = open("F:\\exec.txt",'r',encoding="utf-8")  
  
with file as f:  
    count = 0  
    for line in f:  
        count += 1  
    print(count)

读取文件内容

复制代码
file = open("F:\\exec.txt",'r',encoding="utf-8")  
  
with file as f:  
    print(f.read())  #读取所有内容,并且加载到内存中  
    f.close()

file = open("F:\\exec.txt",'r',encoding="utf-8")  
  
#一行一行的读取  
with file as f:  
    print(f.readline())  
    print(f.readline())  
    print(f.readline())

文件读取与写入

复制代码
file = "F:\\exec.txt"  
  
with open(file,'w',encoding="utf-8") as f:  
    f.write("I love youzi.")  
    f.write("\nI love cheng.")

追加

复制代码
file = "F:\\exec.txt"  
  
with open(file,'a',encoding="utf-8") as f:  
    f.write("I love youzi.")  
    f.write("\nI love cheng.")

readline和readlines的区别

readline和linereads的区别就是带s的读取所有行,而且是按一行一个列表元素

复制代码
file = "F:\\exec.txt"  
  
with open(file,'r',encoding="utf-8") as f:  
    print(f.readlines())

json序列化

复制代码
import pickle  
  
courses = {'1':'Linux','2':'Windows','3':'Darwin','4':'Unix'}  

#打开courses.data这个文件,如果没有就自动创建一个,然后以二进制的方式写入进去,保存到f文件,也就是courses.data
with open('./courses.data','wb') as f:  
    pickle.dump(courses,f)

import pickle  
  
courses = {'1':'Linux','2':'Windows','3':'Darwin','4':'Unix'}  
  
with open('./courses.data','rb') as f:  
    new_courses = pickle.load(f)  
    print(new_courses)

import pickle  
import json  
  
courses = {'1':'Linux','2':'Windows','3':'Darwin','4':'Unix'}  
  
#打开courses,如果没有就自动创建,然后写入courses内容,保存为json对象  
with open('courses.json','w') as f:  
    f.write(json.dumps(courses))

csv文件读取

data.csv

复制代码
姓名,年龄,城市
张三,25,北京
李四,30,上海
王五,28,广州

test.py

复制代码
import csv  
with open('data.csv',encoding='utf-8') as f:  
    data = list(csv.reader(f))  
    print(data)

异常

完整结构

复制代码
try:
    # 可能出错的代码
    pass
except ExceptionType1:
    # 处理 ExceptionType1 异常
    pass
except ExceptionType2:
    # 处理 ExceptionType2 异常
    pass
else:
    # 没有异常时执行
    pass
finally:
    # 无论是否异常都会执行
    pass

简单示例:

复制代码
try:  
    result = 10 / 0  
except ZeroDivisionError:  
    print("不能除以零!")

try:  
    print(num)  
    pass  
except Exception as e:  
    print(e)  
    pass  
else:  
    print("恭喜恭喜,没有报错!")  
    pass  
finally:  
    print("没事,报不报错我都要执行,要你管")  
    pass

pass 空操作语句,什么也不做,只是个占位符

相关推荐
漠缠几秒前
缠论核心公理:走势终完美
学习·程序人生
kishu_iOS&AI几秒前
机器学习 —— 线性回归(2)
人工智能·python·算法·机器学习·线性回归
网上邻居YY2 分钟前
深度学习DL 之 安装PyTorch·GPU版、CUDA(本人Anaconda、Python、PyCharm已提前安装好)
pytorch·经验分享·python·深度学习·pycharm·学习方法
arvin_xiaoting2 分钟前
OpenClaw学习总结_IV_认证与安全_3:Authorization与Policies详解
学习·安全
EnglishJun2 分钟前
ARM嵌入式学习(二十)--- 杂项设备、Platfrom总线和设备树源文件(dts)
学习
知识分享小能手3 分钟前
MongoDB入门学习教程,从入门到精通,MongoDB 安全完全指南(19)
学习·安全·mongodb
AI、少年郎3 分钟前
如何用个人电脑快速训练自己的语言模型?MiniMind 全流程实战指南
人工智能·python·神经网络·ai·自然语言处理·大模型·模型训练微调
枫叶林FYL6 分钟前
【Python高级工程与架构实战】项目四 现代ETL编排平台:Airflow + dbt + Snowflake 企业级数据管道架构与实现
人工智能·python·架构·etl
源码之屋7 分钟前
计算机毕业设计:Python天气数据采集与可视化分析平台 Django框架 线性回归 数据分析 大数据 机器学习 大模型 气象数据(建议收藏)✅
人工智能·python·深度学习·算法·django·线性回归·课程设计