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

相关推荐
行思理3 小时前
go语言学习难度及适合学习的人群
开发语言·学习·golang
wangchunyu1144 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
2501_944521596 小时前
Immer 跨端三方库仓颉适配全流程
python·eclipse·django
信誓旦旦的程序猿6 小时前
【Python量化实战宝典 #26】止损与回撤控制手册:移动止损、最大回撤(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
2501_944521596 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
Patrick在香港6 小时前
同一行 strftime,两台机器跑出两种日期
python·datetime·时区·locale·日期处理
2601_967987377 小时前
用Python+OpenCV+YOLO写个游戏脚本:从自动瞄准到自动采集的保姆级教程
python·opencv·yolo·目标检测·游戏自动化
meiying88387 小时前
快递单号批量查询Python脚本:从手动到自动化的完整实现
开发语言·python·自动化
楚山之石7 小时前
【Medical Image Analysis】深度学习医学图像合成综述:伪CT、合成MRI与合成PET的架构、性能与临床边界
图像处理·人工智能·学习·mr·mri
人工智能导论实践课7 小时前
【GUI桌面开发3】PyCharm配置外部工具
ide·python·pycharm