Python学习笔记之小派读诗
一、系列缘由
作为一名运维工程师,也一直有一个学习开发的想法,值此之际,不知道博客的下一期目标在哪里,在这思考和犹豫的间隙想着学习和充实一下自己,学习一下python语言,python随着大数据和人工智能的兴起而日益火爆。边学习边实践的原则学习python,希望自己更上一层楼。我的目标是创建一个自己的网站——太阳站点(sun-site.com),一个自娱自乐的自由空间。
二、学习笔记
1、读写文件
open() 将会返回一个 file 对象,基本语法格式如下:open(filename, mode)
- filename:包含了你要访问的文件名称的字符串值。
- mode:决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读®。
不同模式打开文件的完全列表:
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
2、文件对象的方法
#使用示例
#打开一个文件
f = open("/tmp/foo.txt", “r”)
str = f.read()
print(str)
#关闭打开的文件
f.close()
- f.read()
为了读取一个文件的内容,调用 f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。 - f.readline()
f.readline() 会从文件中读取单独的一行。换行符为 ‘\n’。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。 - f.readlines()
f.readlines() 将返回该文件中包含的所有行。如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。 - f.write()
f.write(string) 将 string 写入到文件中, 然后返回写入的字符数。 - f.tell()
f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。 - f.seek()
如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数。from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:
seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符
seek(x,1) : 表示从当前位置往后移动x个字符
seek(-x,2):表示从文件的结尾往前移动x个字符 - f.close()
在文本文件中 (那些打开文件的模式下没有 b 的), 只会相对于文件起始位置进行定位。当你处理完一个文件后, 调用 f.close() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。
3、pickle 模块
python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储。通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
三、实践练习
1、实践代码
(base) [root@s186 python]# cat xpds.py
# -*- coding: UTF-8 -*-
# This is a python program.
import time
'''
这是一段学习python的实践代码,主要目的是加强python文件读写的使用和记忆。
小派读诗的意思是python程序读取诗歌文件内容,也可以更新诗歌清单哦!
'''while True:x = int(input("你是想读诗还是写诗?\n1:读诗\n2:写诗\n3:想玩了\n"))if x == 1:f = open("/tmp/tangshi.txt","r")for line in f:print(line)time.sleep(1)f.close()elif x == 2:f = open("/tmp/tangshi.txt","a+")tm = input("请输入七绝诗名:")f.write(tm)f.write("\n")zz = input("请输入作者:")f.write("作者:")f.write(zz)f.write("\n")print("-----请输入诗句-----")for i in range(4):ts = input()f.write(ts)f.write("\n")f.close()elif x == 3:print("----------再会----------")breakelse:print("输入错误,请重新选择!")continue
2、设计说明
- 创建一个tangshi.txt文件,里面存入一首七言绝句;
- 定义一个while循环,根据选择持续读诗或者写诗,1读诗,2写诗,3想玩了;
- 使用if语句执行使用r(读)方式打开文件还是a+(追加方式打开文件);
- 输入1表示读诗,为了控制读诗速度,引入sleep函数,每读一行暂停1秒钟;
- 输入2表示写诗,根据诗名、作者、诗句的顺序写入绝句;
- 输入过输入3,退出程序
- 输入其他告知输入错误。
3、实验测试
(base) [root@s186 python]# cat /tmp/tangshi.txt
黄鹤楼送孟浩然之广陵
作者:李白
故人西辞黄鹤楼,
烟花三月下扬州。
孤帆远影碧空尽,
唯见长江天际流。
(base) [root@s186 python]# python xpds.py
你是想读诗还是写诗?
1:读诗
2:写诗
3:想玩了
1
黄鹤楼送孟浩然之广陵作者:李白故人西辞黄鹤楼,烟花三月下扬州。孤帆远影碧空尽,唯见长江天际流。你是想读诗还是写诗?
1:读诗
2:写诗
3:想玩了
2
请输入七绝诗名:金缕衣
请输入作者:杜秋娘
-----请输入诗句-----
劝君莫惜金缕衣,
劝君惜取少年时。
花开堪折直须折,
莫待无花空折枝。
你是想读诗还是写诗?
1:读诗
2:写诗
3:想玩了
31
输入错误,请重新选择!
你是想读诗还是写诗?
1:读诗
2:写诗
3:想玩了
1
黄鹤楼送孟浩然之广陵作者:李白故人西辞黄鹤楼,烟花三月下扬州。孤帆远影碧空尽,唯见长江天际流。金缕衣作者:杜秋娘劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。你是想读诗还是写诗?
1:读诗
2:写诗
3:想玩了
3
----------再会----------
Python学习笔记之小派读诗相关推荐
- Python学习笔记编程小哥令狐~持续更新、、、
Python学习笔记~编程小哥令狐 文章目录 Python学习笔记~编程小哥令狐 一.Python运行发生情况 二.变量 2.1变量引入前说明 2.2变量的命名和使用 2.3字符串 2.3.1使用方法 ...
- Python 学习笔记 - 作用域小知识
Python的作用域和其他语言有所不同,他有几个小窍门来判断作用域. 1. Python里面没有块级别的作用域:只有函数级别的作用域. 比如说,下面这个例子,如果是Java或者其他语言,肯定报错nam ...
- Python学习笔记(小甲鱼版)
目录 文章目录 一.python是什么? 1.Python 特点 2.idea是什么 3.print() 的作用是什么? 4.基础语法 一.python是什么? Python 是一个高层次的结合了解释 ...
- Python学习笔记--Flask小项目之仿豆瓣电影界面
目录 知识点 效果图 前期准备 创建项目 创建视图 创建模板 1. 创建宏 第一个宏(itemGroup) 第二个宏(listGroup) 2. 创建父模板 3. 创建首页模板 4. 创建" ...
- 【免费分享编程笔记】Python学习笔记
Python学习笔记~编程小哥令狐 文章目录 Python学习笔记~编程小哥令狐 一.Python运行发生情况 二.变量 2.1变量引入前说明 2.2变量的命名和使用 2.3字符串 2.3.1使用方法 ...
- Python 学习笔记(3)对txt文件的读与写操作(下)
上一章节我们讨论了如何对txt文本文件进行读写操作,这一张将讨论如何进行二进制文件的写与读.<Python 学习笔记(3)对txt文件的读与写操作(上)>的链接如下https://blog ...
- 【Python学习笔记】猜颜色小游戏
[Python学习笔记]猜颜色小游戏 前言 一.算法原理 1. 生成器部分 2. 检测器部分 二.代码 过程BUG汇总笔记 总结 前言 最近馋世界游戏大全51,心血来潮用Python写了个猜颜色,顺便 ...
- Python学习笔记(六)
1. IO编程 1.1 文件读写 1.2 StringIO和BytesIO 1.3 操作文件和目录 1.4 序列化 2. 进程和线程 2.1 多进程 2.2 多线程 2.3 ThreadLocal 2 ...
- Python学习笔记:web开发2
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:访问数据库
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
最新文章
- 用「我的世界」自动生成「现实世界」:英伟达展示AI脑补新技术
- 一文了解PL610-01-O96TC-R
- 下面中???该如何填写,才可以正确执行强制类型转换? int (*monthp)[31]; monthp = (???)malloc(31);
- LEACH分簇算法实现和能量控制算法实现
- 2021-01-07 matlab数值分析 插值法 拉格朗日插值法 牛顿插值法
- python 怎么快速分辨一个numpy矩阵(数组)是几维的?
- C# == 和equals()区别
- 云鲸扫拖一体机器人说明书_云鲸扫拖一体机器人开箱测评。拖地机器人的天花板是什么样的?...
- CAP 2.4版本发布,支持版本隔离特性
- android虚线边框_Android实现代码画虚线边框背景效果
- 作者:纪珍(1982-),女,中国科学院国家空间科学中心副研究员
- BMVC 2020 各奖项公布!最佳论文可能就是你要的涨点神器
- VS Code 的 Java 七月更新,新的重构特性
- UVA10191 Longest Nap【排序】
- 声明类对象加括号与声明指针对象加括号的问题
- 板子无法进入loader模式升级固件时需短接emmc或flash
- 商城小程序源码_商城类小程序制作全过程,无需懂小程序商城源码
- python虚线画田字格_[Matplotlib官方示例教程]第19课.自定义虚线样式
- Apache Commons Poo GenericObjectPool 避免泄漏
- 中国地质大学计算机研究所宿舍,在地大,据说一些寝室闪闪发光