python进阶(7)--文件与异常
---------------------------------------分割线:正文--------------------------------------------------------
一、文件读取
1、with语句
#采用idea的sources root的相对路径
with open('..//data//pi_digits.txt') as file_object:
contents = file_object.read()
#打印同时剔除空行
print(contents.rstrip())
查看结果:
3.1415926535
8979323846
2643383279
2、绝对路径
file_path='D:/Users/Mr.White/PycharmProjects/pythonProject/data/pi_digits.txt'
with open(file_path) as file_object:
contents = file_object.read()
print(contents.rstrip())
查看结果:
3.1415926535
8979323846
2643383279
3、for循环逐行读取
with open('../data/pi_digits.txt') as file_object:
for line in file_object:
print(line.rstrip())
查看结果:
3.1415926535
8979323846
2643383279
4、readline()方法,将文件的内容存储在列表内
with open('../data/pi_digits.txt') as file_object:
lines=file_object.readlines()
for line in lines:
print(line.rstrip())
查看结果:
3.1415926535
8979323846
2643383279
优化代码,拼接字符串读取
with open('../data/pi_digits.txt') as file_object:
lines=file_object.readlines()
pi_string=''
for line in lines:
pi_string+=line.strip()
print(pi_string)
print(len(pi_string))
查看结果:
3.141592653589793238462643383279
32
二、文件写入
1、with,覆盖模式
file_name='../data/programming.txt'
with open(file_name,'w') as file_object:
file_object.write("I love programming.")
查看文件(../data/programming.txt):
I love programming.
2、写入多行
file_name='../data/programming.txt'
with open(file_name,'w') as file_object:
file_object.write("I love programming.\n")
file_object.write("i love creating new games.\n")
查看文件(../data/programming.txt):
I love programming.
i love creating new games.
3、with,附加模式
with open(file_name,'a') as file_object:
file_object.write("I also love fing...\n")
file_object.write("i love creating apps that...\n")
查看文件(../data/programming.txt):
I love programming.
i love creating new games.
I also love fing...
i love creating apps that...
三、异常
1、解决异常(ZeroDivisionError):try except
try:
print(5/0)
except ZeroDivisionError:
print("You can't divide by zero!")
查看结果:
You can't divide by zero!
2、解决异常(FileNotFoundError):try except
filename="testfile.txt"
try:
with open(filename,encoding='utf-8') as f:
contents=f.read()
except FileNotFoundError:
print(f"sorry,the file {filename} does not exits.")
查看结果:
sorry,the file testfile.txt does not exits.
3、异常时静默处理:pass
try:
print(5/0)
except ZeroDivisionError:
pass
无显示结果
四、存储数据
1、写入数据
import json
number=[2,3,5,7,11,13]
filename='../data/number.json'
with open(filename,'w') as f:
json.dump(number,f)
查看结果(number.json)
[2, 3, 5, 7, 11, 13]
2、读取数据
filename='../data/number.json'
with open(filename) as f:
numbers=json.load(f)
print(numbers)
查看结果:
[2, 3, 5, 7, 11, 13]
3、json+input:保存和读取用户输入
username=input("What is your name?")
filename='username.json'
with open(filename,'w') as f:
json.dump(username,f)
print(f"We'll remember you when you come back,{username}!")
with open(filename) as f:
username=json.load(f)
print(f"Welcom back,{username}")
查看结果:
What is your name?mike
We'll remember you when you come back,mike!
Welcom back,mike
4、封装用户输入与存储
def get_stored_username():
"""当没有错误时读取保存的用户名"""
filename='username.json'
try:
with open(filename) as f:
username=json.load(f)
except FileNotFoundError:
return None
else:
return username def get_new_username():
"""验证新用户名"""
username=input("What is your name?")
filename='username.json'
with open(filename,'w') as f:
json.dump(username,f)
return username def greet_user():
"""greet the user by name"""
username=get_stored_username()
if username:
print(f"Welcome back,{username}!")
else:
username=get_new_username()
print(f"We will remember you when you come back,{username}!") greet_user()
查看运行结果:
Welcome back,mike!
python进阶(7)--文件与异常的更多相关文章
- Head First Python之3文件与异常
文件基本操作 Python从文本读取数据时,一次会到达一个数据行. sketch.txt文件 Man: Is this the right room for an argument? Other Ma ...
- python学习二(文件与异常)
Python中使用open BIF与文件交互,与for语句结合使用,一次读取一行 读取文件sketch.txt,文件内容如下: Man: Ah! (taking out his wallet and ...
- Python的文件及异常
1. Python的文件及异常 1.1 文件操作 1.1.1 从文件中读取数据 许多情况下,我们的信息是存储在文本中的.例如对用户行为的分析,用户访问系统或者网站的访问信息会被存储于文本中,然后对文本 ...
- python入门学习:9.文件和异常
python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件 首先创建一个pi_ ...
- [Python 从入门到放弃] 6. 文件与异常(二)
本章所用test.txt文件可以在( [Python 从入门到放弃] 6. 文件与异常(一))找到并自行创建 现在有个需求,对test.txt中的文本内容进行修改: (1)将期间的‘:’改为‘ sai ...
- Python模块、包、异常、文件(案例)
Python模块.包.异常.文件(案例) python.py #模块 # Python中的模块(Module),是一个Python文件,以.py文件结尾,包含了Python对象定义和Python语句, ...
- Python获得文件时间戳 异常访问监控 邮件定时提醒
Python获得文件时间戳 异常访问监控 邮件定时提醒
- Python之文件和异常IO
文件和异常 读写文本文件 读取文本文件时,需要在使用open函数时指定好带路径的文件名(可以使用相对路径或绝对路径)并将文件模式设置为'r'(如果不指定,默认值也是'r'),然后通过encoding参 ...
- Python进阶【第七篇】文件处理
一.文件操作 在Python中,文件读写是最常见的操作.对文件的操作为: #1. 打开文件,得到文件句柄并赋值给一个变量 f=open('a.txt','r',encoding='utf-8') #默 ...
随机推荐
- 大送福利!市场香饽饽VAST到底什么来头,为何被高价估值
近日,NGK星空计划新币VAST成为了香饽饽,还未正式上线前,市场讨论的热度就居高不下.如今NGK推出1万VAST免费送新人福利更是将这波热度推向了高潮. 具体福利规则:在美国加州时间2021年2月8 ...
- 03_MySQL重置root密码
重设root密码
- 为什么Linux需要虚拟内存
本文转载自为什么 Linux 需要虚拟内存 导语 操作系统中的 CPU 和主内存(Main memory)都是稀缺资源,所有运行在当前操作系统的进程会共享系统中的 CPU 和内存资源,操作系统会使用 ...
- (十一) 数据库查询处理之连接(Join)
(十一) 数据库查询处理之连接(Join) 1. 连接操作的一个例子 把外层关系和内层关系中满足一定关系的属性值拼接成一个新的元组 一种现在仍然十分有用的优化思路Late Materializatio ...
- redis基础:redis下载安装与配置,redis数据类型使用,redis常用指令,jedis使用,RDB和AOF持久化
知识点梳理 课堂讲义 课程计划 1. REDIS 入 门 (了解) (操作) 2. 数据类型 (重点) (操作) (理解) 3. 常用指令 (操作) 4. Jedis (重点) (操作) ...
- C++ 中的虚函数表及虚函数执行原理
为了实现虚函数,C++ 使用了虚函数表来达到延迟绑定的目的.虚函数表在动态/延迟绑定行为中用于查询调用的函数. 尽管要描述清楚虚函数表的机制会多费点口舌,但其实其本身还是比较简单的. 首先,每个包含虚 ...
- kali msf6 更新及bug处理
问题描述 Metasploit 漏洞库更新,利用msfupdate命令更新,出现已停止该命令更新,出现如下提示: 利用一句话安装更新,命令如下,安装过程中有部分警告出现 curl https://ra ...
- 给出镜像FreeBSD 基本要求
硬盘 ports 500G update 500G portsnap 500G pkg arm64 amd64 i386 11-12-13 4TB 网络流量一个月专线大概2w RMB CPU 内存 其 ...
- 图文详解:内存总是不够,我靠HBase说服了Leader为新项目保驾护航
- slickgrid ( nsunleo-slickgrid ) 3 修正区域选择不能跨冻结列的问题
slickgrid ( nsunleo-slickgrid ) 3 修正区域选择不能跨冻结列的问题 上次解决区域选择不能跨冻结列问题的时候,剩了个尾巴,从右往左选择的时候,会出现选择不正常的情况,后 ...