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

相关推荐
电饭叔1 小时前
Luhn算法与信用卡识别完善《python语言程序设计》2018版--第8章14题利用字符串输入作为一个信用卡号之三
android·python·算法
月光技术杂谈1 小时前
基于Python+Selenium的淘宝商品信息智能采集实践:从浏览器控制到反爬应对
爬虫·python·selenium·自动化·web·电商·淘宝
xunyan62341 小时前
面向对象(下)-模版方法的设计模式其应用场景
java·学习·设计模式
HsuHeinrich1 小时前
利用表格探索宜居城市
python·数据可视化
过尽漉雪千山1 小时前
Anaconda的虚拟环境下使用清华源镜像安装Pytorch
人工智能·pytorch·python·深度学习·机器学习
碧海银沙音频科技研究院1 小时前
CLIP(对比语言-图像预训练)在长尾图像分类应用
python·深度学习·分类
Dxxyyyy1 小时前
零基础学JAVA--Day41(IO文件流+IO流原理+InputStream+OutputStream)
java·开发语言·python
jiuweiC1 小时前
python 虚拟环境-windows
开发语言·windows·python
四维碎片1 小时前
【Qt】QTimer 学习笔记总结
笔记·qt·学习