python--从入门到实践--chapter 10 文件及错误

文件的读写:

with open(filename, 'a', encoding='utf-8') as file:

with :后面不必写close文件
第二个参数:‘a’ 追加;‘w’ 写;‘r’ 读
encoding = ‘utf-8’ 编码格式,中文的话一般写上

enter = 'y'
while enter == 'y':name = input("请输入你的名字:")filename = "guest_record.txt"if name != "":with open(filename, 'a', encoding='utf-8') as file:file.write(name + '\n')print("hello, ", name, " !")conti = 'y'while conti == 'y':reason = input("你为什么喜欢python?")with open(filename, 'a', encoding='utf-8') as file:file.write(reason + '\n')conti = input("继续输入原因吗?y/n ")enter = input("继续访问吗?y/n ")

file.readlines() 文件按行读取存在列表内
file.read() 整体读取

filename = 'pi_digits.txt'
with open(filename) as pi_file: #with帮助我们适时关闭文件lines = pi_file.readlines()	#把文件按行存储
pi_str = ''
for line in lines:pi_str += line.strip()	#strip()行左右的空删除
print(pi_str[:7]+"...")
print(len(pi_str))
birthday = input("输入你的生日:yyyymmdd ")
if birthday in pi_str:print("你的生日出现在pi中。")
else:print("你的生日不在pi中。")
filename = 'learning_python.txt'
with open(filename) as file:'''方法1:整个文件一次读取'''# print(file.read())'''方法2:分行读取'''# for line in file.readlines():#     print(line.strip())'''方法3'''line1 = file.readlines()for l in line1:print(l.replace("Python", "C++").strip())

try;except;else(try代码块出错后,执行except部分,未出错,执行else)
错误处理可以使程序不至于崩溃,还可以继续运行

print("input 2 numbers to divide, enter 'q' to quit.")
while True:first = input("\nfirst num: ")if first == 'q':breaksecond = input("\nsecond num: ")try:answer = int(first) / int(second)except ZeroDivisionError:print("divide zero!!!")else:print(answer)breakfilename = 'learning_python.txt'
try:with open(filename) as f_obj:contents = f_obj.read()
except FileNotFoundError:msg = "Sorry, the file " + filename + " does not exist."print(msg)# pass  #一言不发,跳过
else:words = contents.split()print("the title ", filename, " has ", str(len(words)), " words.")while True:print("input 2 nums : ")try:a = int(input('first num: '))except ValueError:print("请输入数字!")continuetry:b = int(input('second num: '))except ValueError:print("请输入数字!")continueprint("sum of two nums is ", a+b)

json文件存储

json.dump(object, file)
json.load(file)
import json
numbers = [2, 3, 5, 7, 11, 13]
filename = "numbers.json"
with open(filename,'w') as file:json.dump(numbers,file)with open(filename) as file:numbers = json.load(file)
print(numbers)def get_stored_username():filename = "username.json"try:with open(filename) as file:username = json.load(file)except FileNotFoundError:return Noneelse:return usernamedef get_new_username():username = input("What is your name? ")filename = "username.json"with open(filename, 'a') as file:json.dump(username, file)return usernamedef greet_user():username = get_stored_username()if username:print("Welcome back, ", username, " !")else:get_new_username()print("We'll remember you when you come back, ", username, " !")greet_user()
import json
def get_num():try:global favor_numfavor_num = int(input("输入你喜欢的数字:"))except ValueError:print("你输入的不是数字,请重新输入!")get_num()return favor_numdef store_num(num):filename = "user_favor_num.json"with open(filename, 'a') as file:json.dump(num, file)def getAndStore():store_num(get_num())def print_num():filename = "user_favor_num.json"try:with open(filename) as file:num = json.load(file)except FileNotFoundError:getAndStore()else:print("i know your favorite number! it is ", num)print_num()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中文人物关系图谱构建与应用项目(人物关系抽取,关系抽取评测)

ChinesePersonRelationGraph ChinesePersonRelationGraph, person relationship extraction based on nlp methods.中文人物关系知识图谱项目,内容包括中文人物关系图谱构建,基于知识库的数据回标,基于远程监督与bootstrapping方法的人物关系抽取,基于知识图谱的知识问答等应用…

2019 最新阿里中间件Java 4轮面试题!60万年薪起步~

Java中间件一面 1.技术一面考察范围: 重点问了Java线程锁:synchronized 和ReentrantLock相关的底层实现 线程池的底层实现以及常见的参数 数据结构基本都问了一遍:链表、队列等 Java内存模型:常问的JVM分代模型,以…

0011【冥想】87天冥想感悟汇总

0011【冥想】87天冥想感悟汇总 2018.1.6 Day1图片发自简书App1.7 Day2图片发自简书App❤️1.8冥想Day3❤️听了谷老师的分享,挺受益的。当我们的心越来越柔软,身体也会越来越柔软,所谓相由心生,冥想的时候,身体也会听从…

这个自然语言处理“工具”,玩得停不下来

今天推荐一个有趣的自然语言处理公众号「AINLP」,关注后玩得根本停不下来!AINLP的维护者是我爱自然语言处理(52nlp)博主,他之前在腾讯从事NLP相关的研发工作,目前在一家创业公司带技术团队。AINLP公众号的定…

观点 | 抛开炒作看知识图谱,为什么现在才爆发?

本文转载自公众号:AI前线。 作者 | George Anadiotis 译者 | 无明 导读:知识图谱究竟是什么,都有哪些围绕它们的炒作?如果你想要像 Airbnb、亚马逊…

算法--排序--寻找数组内第K大的元素

此题目,需要用到快速排序里的划分数组操作: 快排参考:https://blog.csdn.net/qq_21201267/article/details/81516569#t2 先选取一个合适的哨兵(三数取中法)将数组分成三部分【小于哨兵的】【哨兵】【大于等于哨兵的】…

MiningZhiDaoQACorpus,580万百度知道问题,980万问答对数据挖掘项目

MiningZhiDaoQACorpus 580万百度知道问答数据挖掘项目 ZhiDaoChatCorpus, zhidao QA pairs crawled from Baidu zhidao which contains more than 5,800,000 question and answers with certain tags。百度知道问答语料库,包括超过580万的问题,每个问题…

淘宝网Java五面:现场面试49题含答案!

淘宝一面: 面试介绍 1)自我介绍? 2)项目介绍? 3)遇到的最大困难是什么?怎么解决的? 4)你觉得你能怎么优化这个项目? 面试题目 1)讲一下JVM 2&#xff…

冥想|平静与自由之路,给初学者的冥想教程

原文地址:https://www.jianshu.com/p/c738016d7265 当我们慢慢长大,成长到一个完整的自己,就开始寻找真正的自我,探索与世界共处的自洽,叩问这天地间最原始和究极的道理。在这自洽与叩问中,现实的波澜、理想…

告别自注意力,谷歌为Transformer打造新内核Synthesizer

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者:舒意恒(南京大学硕士生,知识图谱方向)今天给大家介绍一篇来自Google的最新论文《SYNTHESIZER: Rethinking Self-Attention in Transformer Models》[4],该论文重新探索了T…

50万抽象知识图谱项目(实体抽象、性状抽象与动作抽象)

AbstractKnowledgeGraph AbstractKnowledgeGraph, a systematic knowledge graph that concentrate on abstract thing including abstract entity and action. 抽象知识图谱,目前规模50万,支持名词性实体、状态性描述、事件性动作进行抽象。目标于抽象…

算法--排序--大小写字母数字分离(桶排序思想)

题目: 对D,a,F,B,c,A,z这个字符串进行排序,要求将其中所有小写字母都排在大写字母的前面,但小写字母内部和大写字母内部不要求有序。比如经过排序之后为a,c&a…

腾讯2019秋招笔试真题

1、小Q爬塔 描述:小Q正在攀登一座宝塔,这座塔很特别,塔总共有n曾层,但是没两层之间的净高却不相同,所以造成了小Q爬过每层的时间也不同。如果某一层的高度为x,那么爬过这一层锁需的还是件也是x。小Q孩会使…

2019 最新蚂蚁花呗Java三面题目:红黑树+并发容器+CAS+Solr+分布式等

蚂蚁金服专场 涵盖了蚂蚁金服从Java工程师到技术专家面试题目 支付宝高级Java三面题目:线程锁事务雪崩Docker等 蚂蚁花呗团队面试题:LinkedHashMapSpringCloud线程锁分布式 蚂蚁金服高级Java面试题目 支付宝Java开发四面:NgnixMQ队列集群并发抢购 蚂…

事理图谱:一种纯学术需求、无法落地、漏洞百出的新技术或新概念?

过去几个月,深陷所谓“事理图谱”当中,苦恼不已。从2018年4月份开始做所谓的“事理图谱”以来至今,磕磕碰碰,做了很多技术上的尝试,也不乏在应用事理图谱上尝试了多种做法,也不乏写了几篇关于事理图谱的文章…

论文浅尝 | 实体图的预览表格生成

链接:ranger.uta.edu/~cli/pubs/2016/tabview-sigmod16-yan.pdf动机对于结构化数据和关系数据,通常使用Schema图为数据库的使用者提供基本信息。因此,作者提出了生成预览表格(preview table)的方法,为实体图…

万能的BERT连文本纠错也不放过

一只小狐狸带你解锁炼丹术&NLP秘籍作者:孙树兵学校:河北科技大学方向:QA/NLU/信息抽取编辑:小轶背景文本纠错(Spelling Error Correction)技术常用于文本的预处理阶段。在搜索引擎、输入法和 OCR 中有着…

POJ 1664 苹果放盘子(递归)

题目链接:http://poj.org/problem?id1664 m个相同的苹果放在n个相同的盘子里,有多少种不一样的方法。 例如,3个苹果放在4个盘子里有(3,0,0,0)(1,1&#xf…

2019字节跳动秋招笔试

毕业旅行 题目描述: 小明目前在做一份毕业旅行的规划。打算从北京出发,分别去若干个城市,然后再回到北京,每个城市之间均乘坐高铁,且每个城市只去一次。由于经费有限,希望能够通过合理的路线安排尽可能的省…

蚂蚁金服4轮面经(Java研发):G1收集器+连接池+分布式架构

一面 线程池有哪些参数?分别有什么用?如果任务数超过的核心线程数,会发生什么?阻塞队列大小是多少? 数据库连接池介绍下,底层实现说下 hashset底层实现,hashmap的put操作过程 说说HaspMap底层…