Python基础:文件和异常
写入文件
要将文本写入文件,你在调用open()时需要提供两个实参:
第一个实参是文件的名称,可以是相对路径(Python基于当前执行的.py文件所在的目录),也可以是绝对路径(不用多说),在Linux或OS X中,文件路径类似于这样'text_files/filename.txt';在Windows系统中,使用反斜杠而不是斜杠'text_files\filename.txt',由于反斜杠在Python中被视为转义标记,为在Windows中确保万无一失,应以原始字符串的方式制定路径,即在开头的单引号前加上r。
第二个实参‘w’告诉Python,我们要以写入模式打开这个文件。打开文件时,可指定读取模式('r')、写入模式('w')、附加模式('a')或让你能够读取和写入文件的模式('r+')。如果你省略了模式实参,Python默认只读模式打开文件。
关键字with在不需访问文件后将其关闭,open()返回的文件对象只在with代码块内可用。这里只调用了open(),但没有调用close();你也可以调用open()和close()来打开和关闭文件。
Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用str()函数将其转换为字符串格式。
filename = 'programming.txt'with open(filename, 'w') as file_object:file_object.write("I love programming.\n")file_object.write("I love creating new games.\n")
如果你想要给文件添加内容,而不是复制原有的内容,可以附加模式打开文件。如果指定的文件不存在,Python将为你创建一个空文件。
filename = 'programming.txt'with open(filename, 'a') as file_object:file_object.write("I also love finding meaning in large datasets.\n")file_object.write("I love creating apps that can run in a broswer.\n")
从文件中读取数据
使用read()方法读取文件的全部内容。readline()或readlines()方法进行更细致的处理。
filename = 'programming.txt'def print_file_contents1():''' using read()'''with open(filename) as file_object:contents = file_object.read()print(contents.rstrip())def print_file_contents2():''' using for'''with open(filename) as file_object:for line in file_object:print(line.rstrip())def print_file_contents3():''' using readlines()'''with open(filename) as file_object:lines = file_object.readlines()for line in lines:print(line.rstrip())print_file_contents1()
print_file_contents2()
print_file_contents3()
异常
Python使用被称为异常的特殊对象来管理程序执行期间发生的错误。异常是使用try-except代码块或try-except-else代码块处理的。依赖于try代码块成功执行的代码都应放到else代码块中。
通过预测可能发生错误的代码,可编写健壮的程序,它们即使面临无效数据或缺少资源,也能继续运行,从而能够抵御无意的用户错误和恶意的攻击。
print("Give me two numbers, and I'll divide them.")
print("Enter 'q' to quit.")while True:first_number = input("\nFirst Number:")if first_number == 'q':breaksecond_number = input("Second Number:")try:answer = int(first_number) / int(second_number)except ZeroDivisionError:print("You can't divide by 0!")else:print(answer)
有时候你希望程序在发生异常时一声不吭,就像什么都没有发生一样继续运行。Python中有一个 pass语句,可在except代码块明确的告诉Python什么都不要做。
存储数据
一种简单的方式是使用模块json来存储数据。JSON(JavaScript Object Notation)格式最初是为JavaScript开发的,但随后成了一种常见格式,被包括Python在内的众多语言采用。
函数json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。
函数json.load()加载存储在文件对象中的信息,并返回它。
import jsonfilename = 'username.json'
try:with open(filename) as f_obj:username = json.load(f_obj)
except FileNotFoundError:username = input("What is your name?")with open(filename, 'w') as f_obj:json.dump(username, f_obj)print("We'll remember you when you come back," + username + '!')
else:print("Welcome back, " + username + "!")
你经常会遇到这样的情况:代码能够正确的运行,但可做进一步的改进——将代码划分为一系列完成具体工作的函数。这样的过程被成为重构。重构让代码更清晰、更易于理解、更容易扩展。
import jsondef get_stored_username():'''if stored username, return it'''filename = 'username.json'try:with open(filename) as f_obj:username = json.load(f_obj)except FileNotFoundError:return Noneelse:return username def get_new_username():'''prompt imput username'''username = input("What is your name?")filename = 'username.json'with open(filename, 'w') as f_obj:json.dump(username,f_obj)return usernamedef greet_user():'''greet user, print username '''username = get_stored_username()if username:print("Welcome back, " + username + "!")else:username = get_new_username()print("We'll remember you when you come back, " + username + '!')greet_user()
Python基础:文件和异常相关推荐
- python基础 -文件和异常
文章目录 一.从文件中读取数据 1.读取整个文件 2.只读 3.路径 4.读操作 二.写入文件 1.写模式 2.读写模式 3.写读模式 4.修改文件内容 5.其他相关操作 三.异常 1.什么是异常 2 ...
- Python(6)-文件和异常
Python(6)-文件和异常 参考文章: (1)Python(6)-文件和异常 (2)https://www.cnblogs.com/Testerblanche/p/9117433.html 备忘一 ...
- Python基础-文件操作
Python基础-文件操作 1.文件的打开和关闭 # 1.打开文件 # 默认r模式 只读 文件不存在,报错 # f = open('a.txt')# w模式 写权限 # 如果文件不存在,就会创建文件 ...
- python list 平均值_python list 最大值和平均值Python基础 - 文件拷贝
最近在备份手机上的照片的时候,纯手工操作觉得有些麻烦,就想写个脚本自动进行.因为备份的时候有些照片以前备份过了,所以需要有个判重操作. 主要功能在copyFiles()函数里实现,如下: 电脑技术网认 ...
- Python基础--文件操作
文件操作通常用来存储程序结果,以便下次可以直接使用,不必要重新运行一遍.文件操作最基本的三步:1.打开文件或者新建文件 2. 读或者写 3 关闭文件流保存数据. Python 访问模式如下: 打开 ...
- python读文件每一行、并把这行替换-python基础--文件操作实现全文或单行替换
python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 替换文本中的taste 为 tasting Yesterday whe ...
- python基础之内置异常对象
前言 什么叫异常?简单来说就是程序运行发生了预计结果之外的情况从而导致程序无法正常运行.而python解释器将一些常见的异常情况在它发生时打包成一个异常对象,我们可以通过捕捉这些异常对象从而进行处理, ...
- Python基础---文件
目录 一.文件介绍 1.什么是文件 2.文件的分类 3.文件的作用 4.使用文件的流程 二.读写文件简单操作 1.读取文件 2.写文件 3.文件拷贝 三.文件权限 读操作 1.r 2.rb 3.r+ ...
- python基础——文件与IO
目录 一.打开文件 二.文件的读取 1.read方法 2.readlines方法 3.readline方法 4.for循环读取文件 三.文件的写入 1.文件不存在时 2.文件存在时 四.文件的追加 五 ...
- 第三章 Python基础——文件操作函数
3.1三元运算 三元运算又称三目运算,是对简单条件的简写 if 条件成立:val=1 else:val=2 改成三元运算: val=1 if条件成立 else 2 3.2字符编码转换 编码的种类情况: ...
最新文章
- C陷阱与缺陷的学习笔记
- (转)C# foreach 中获取索引index的方法
- 理解 __doPostBack(转)
- BP神经网络分类2*2对角矩阵准确率数据汇总
- 视觉里程计 | 关于Stereo DSO中的高斯牛顿的一点注释
- mysql数据记录更新版本问题_MySQL版本升级遇到的问题小结
- JFinalOA导出Excel
- 在html中怎么写背景色渐变,css3背景色渐变
- 【大数据课堂0006】【oracle】python3/plsql 使用cx_Oracle遇到到的坑
- xcode Cornerstone 拷贝项目 提示框架头文件找不到的问题
- 小程序毕设作品之微信酒店预订小程序毕业设计(8)毕业设计论文模板
- iOS接收airdrop发送来的文件
- 大地测量学基础(复习)第二部分
- 教育网IPv6网址大全,在学校记流量的必收藏。(推荐用乐乎下载,速度达到1M以上)
- 中国十大B2C电商站点开发语言调查
- 思成五笔的通俗易懂讲解
- 超详细测试项目——Web电商项目测试点整理.....
- 利用arcgis进行excel数据的空间相关性分析
- Nginx 的配置和访问控制的理论实验操作详情
- 往事如烟 - 老钟23
热门文章
- ABB机器人6.13版手册下载
- FMM 大战 LMM - SOFR 企稳 Part II
- html网页字体出现模糊,浏览器打开网页字体模糊问题的解决方法
- linux chrome ui字体,谷歌Chrome 69浏览器标签栏字体模糊的解决方法
- zabbix如何监控ip地址_获取zabbix上所有主机的IP和主机名的实例代码
- 污水处理问题多,泵站自动化控制系统是这样解决的
- 老司机 iOS 周报 #15 | 2018-04-16
- linux ./ 执行run文件,如何在Ubuntu中执行.bin和.run文件
- 灰狼优化算法(Grey Wolf Optimizer, GWO)
- 想学3D建模?适合安装3dsmax软件的笔记本配置