Python学习笔记-Day6
文件处理
- I/O input/print输入和输出流
- 字符串格式化
- open/close
- 读取文件内容
- 写入文件
- json序列化
- 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,广州
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 空操作语句,什么也不做,只是个占位符