文件和异常
学习内容
1、处理文件
处理文件的目的:让程序能够快速的分析大量的数据
2、错误处理
目的:避免程序在面对意外情形时崩溃
3、异常
目的:Python创建的特殊对象,用于管理程序运行时出现的错误
4、模块json
目的:保存用户数据,免得程序终止运行后丢失
1.1 从文件中读取数据
数据类型:天气数据、交通数据、社会经济数据、文学作家等
例子:从文件中读取数据,然后重新改写文件格式,最后在浏览器中显示
例子中的文件
pi_digits.txt文件
3.1415926535
8979323846
2643383279片
pi_digits1.txt文件
我的设计方向:废品回收废碎二次利用项目,
1、山西太原立式磨粉机(2005年)
目前状况:现有立式磨粉机出粉率低、能耗高的问题。
创新点:通过增加卡环、卡圈,使立式磨粉机内部具有粒度分级结构,使立式磨粉机本身具有粒度分选功能,在一定的细度范围内
,该立式磨粉机的出料可直接达到所需的细度要求,克服了现有立式磨粉机需要多次循环,出粉率低、耗能高的弊端。
适用场合:植物纤维类材料如木屑等的磨粉加工
2、带有阶梯状磨盘的立式磨粉机(2017)
目前状况:目前国内立式辊磨机的粉磨机构主要是球形磨辊和凹槽形磨盘,其外形复杂,制造难度大造价高,磨损后修复较为困难且费用高,
磨粉效率低。同时,由于磨粉机构磨损后修复较困难,修复时间长,导致立式辊磨机的运转效率低。这些缺点影响了整个水泥生产线的运转率
,使水泥生产线的开工率和效益受到影响。
创新点:
没有人能打倒你,除了你自己,你要学会捂上自己的耳朵,不去听那些熙熙攘攘的声音。这个世界上没有不辛苦的人,真正能治愈自己的,只有你自己。晚安!‘
1.1.1 读取整个文件
手动创建文件pi_digits.txt
读取文件
with open('pi_digits.txt') as file_object:
contents = file_object.read()
print(contents)
结果:
3.1415926535
8979323846
2643383279
with 作用:在不需要访问文件时关闭 好处:在需要时打开文件,不要时自动关闭文件
open() 和 close()虽然也可打开文件关闭文件,但文件出现bug时close就不会起作用,
文件也就不会关闭,所以with 和 open()更好
结果相对于原始字符:在最后一行多了一行空字符串(空行)
read()方法读到文件末尾返回空字符串,可使用rstrip()函数删除文件末尾空字符串
with open('pi_digits.txt') as file_object:
contents = file_object.read()
print(contents.rstrip())
结果:
3.1415926535
8979323846
2643383279
1.1.2 文件路径
使用场合:文件路径与程序路径不在一个目录文件下时
1、Linux和OSX系统导入方式
with open(‘txt_file//filename.txt’ ) as file_object:
2、windows系统导入方式
with open(‘txt_file\filename.txt’) as file_object:
绝对文件
1、Linux和OSX系统导入方式
file_path = ‘/home/ehmatthes/other_file/text_file/filename.txt’
with open(file_path) as file_object:
2、windows系统导入方式
file_path = ‘C:\Users\ehmatthes\other_file\text_file\filename.txt’
绝对路径例子:
file_path = 'E:\python学习\pi_digits1.txt'
with open(file_path) as file_object:
for line in file_object:
line.strip()
print(line) ## 逐行打印并去除每行的前后空白
结果:
我的设计方向:废品回收废碎二次利用项目,
1、山西太原立式磨粉机(2005年)
目前状况:现有立式磨粉机出粉率低、能耗高的问题。
创新点:通过增加卡环、卡圈,使立式磨粉机内部具有粒度分级结构,使立式磨粉机本身具有粒度分选功能,在一定的细度范围内
,该立式磨粉机的出料可直接达到所需的细度要求,克服了现有立式磨粉机需要多次循环,出粉率低、耗能高的弊端。
适用场合:植物纤维类材料如木屑等的磨粉加工
2、带有阶梯状磨盘的立式磨粉机(2017)
目前状况:目前国内立式辊磨机的粉磨机构主要是球形磨辊和凹槽形磨盘,其外形复杂,制造难度大造价高,磨损后修复较为困难且费用高,
磨粉效率低。同时,由于磨粉机构磨损后修复较困难,修复时间长,导致立式辊磨机的运转效率低。这些缺点影响了整个水泥生产线的运转率
,使水泥生产线的开工率和效益受到影响。
创新点:
没有人能打倒你,除了你自己,你要学会捂上自己的耳朵,不去听那些熙熙攘攘的声音。这个世界上没有不辛苦的人,真正能治愈自己的,只有你自己。晚安!‘
1.1.3 逐行读取
使用场合:需要对每一行作特定操作
filename = 'E:\python学习\python基础学习\pi_digits.txt'
1、逐行打印
with open(filename) as file_object:
for line in file_object:
print(line) ## 逐行打印
结果:
3.1415926535
8979323846
2643383279
2、逐行打印并去除每行的前后空白
with open(filename) as file_object:
for line in file_object:
print(line.strip()) ## 去除每行前后空白
结果:
3.1415926535
8979323846
2643383279
3、去除文本文件中的空白行的函数代码
def delblankline(infile,outfile):
infopen = open(infile,'r')
outfopen = open(outfile,'w')
lines = infopen.readlines()
for line in lines:
if line.split():
outfopen.writelines(line)
else:
outfopen.writelines("")
infopen.close()
outfopen.close()
delblankline("E:\python学习\pi_digits1.txt","output1.txt")
结果:
我的设计方向:废品回收废碎二次利用项目,
1、山西太原立式磨粉机(2005年)
目前状况:现有立式磨粉机出粉率低、能耗高的问题。
创新点:通过增加卡环、卡圈,使立式磨粉机内部具有粒度分级结构,使立式磨粉机本身具有粒度分选功能,在一定的细度范围内
,该立式磨粉机的出料可直接达到所需的细度要求,克服了现有立式磨粉机需要多次循环,出粉率低、耗能高的弊端。
适用场合:植物纤维类材料如木屑等的磨粉加工
2、带有阶梯状磨盘的立式磨粉机(2017)
目前状况:目前国内立式辊磨机的粉磨机构主要是球形磨辊和凹槽形磨盘,其外形复杂,制造难度大造价高,磨损后修复较为困难且费用高,
磨粉效率低。同时,由于磨粉机构磨损后修复较困难,修复时间长,导致立式辊磨机的运转效率低。这些缺点影响了整个水泥生产线的运转率
,使水泥生产线的开工率和效益受到影响。
创新点:
没有人能打倒你,除了你自己,你要学会捂上自己的耳朵,不去听那些熙熙攘攘的声音。这个世界上没有不辛苦的人,真正能治愈自己的,只有你自己。晚安!
1.1.4 创建一个包含文件各行内容的列表
作用:在with代码块外使用文件内容
创建一个列表存储文件内容
1、例子1
file_name = 'pi_digits.txt'
with open(file_name) as file_object:
# readline()读取文件每一行存在列表中,放到变量lines中
lines = file_object.readline()
for line in lines:
print(line.rstrip())
结果:
3
.
1
4
1
5
9
2
6
5
3
5
2、例子2
file_path = 'E:\python学习\pi_digits1.txt'
with open(file_path) as file_object:
# readline()读取文件每一行存在列表中,放到变量lines中
lines = file_object.readline()
for line in lines:
print(line.rstrip())
结果:
我
的
设
计
方
向
:
废
品
回
收
废
碎
二
次
利
用
项
目
,
总结:
文件导入:
1、目标文件在python当前文件下,导入方式
with open(“file_name.txt” ) as file_object:
文件存储变量名 = file_object.read()
print(文件存储变量名)
2、目标文件不在python当前文件下,导入方式
## 1、Linux和OSX系统导入方式
with open(‘txt_file//filename.txt’ ) as file_object:
## 2、windows系统导入方式
## with open('txt_file\filename.txt') as file_object: