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 空操作语句,什么也不做,只是个占位符

相关推荐
非凡ghost12 小时前
CoolUtils PDF Combine(PDF合并工具)
windows·学习·pdf·软件需求
Cathy Bryant12 小时前
傅里叶变换(一):简介
笔记·算法·数学建模·信息与通信·傅里叶分析
阿W呀12 小时前
【光的偏振与光功率 / 能量测量学习笔记】
学习
F_D_Z12 小时前
【Python】家庭用电数据的时序分析
python·数据分析·时序分析·序列分解
allan bull12 小时前
在节日中寻找平衡:圣诞的欢乐与传统节日的温情
人工智能·学习·算法·职场和发展·生活·求职招聘·节日
a程序小傲12 小时前
蚂蚁Java面试被问:注解的工作原理及如何自定义注解
java·开发语言·python·面试
love530love12 小时前
【笔记】ComfyUI “OSError: [WinError 38] 已到文件结尾” 报错解决方案
人工智能·windows·python·aigc·comfyui·winerror 38
wdfk_prog12 小时前
[Linux]学习笔记系列 -- [fs]fs-writeback
linux·笔记·学习
charlie11451419113 小时前
嵌入式现代C++教程:C++98——从C向C++的演化(3)
c语言·开发语言·c++·笔记·学习·嵌入式
lcreek13 小时前
LeetCode215. 数组中的第K个最大元素、LeetCode912. 排序数组
python·算法·leetcode