用python编写最简单的记事本_利用Python制作一个“电子记事本”

案例内容

今天的挑战就是写一个“记事本”小程序。程序的功能分为三个部分:

1、把内容记录到文件。

2、显示记录的所有内容。

3、删除不再需要的内容。

正式的“记事本”程序实际上很复杂,在手机市场中搜索,能找到上千种app,对于用户体验等方面的设计和功能要求非常高,竞争激烈。我们在这里出于学习目的,并且主要集中在对于文件操作的学习,所以一切都比较简化。

在挑战的题目中,实际上已经把程序分了3部分功能,保存、显示和删除。这等于已经帮助我们进行了整体程序结构的设计。我们沿着这个思路,先使用“伪代码”的形式,把流程梳理清楚。

把内容记录到文件

1、获取要记录的内容(笔记内容),这里有一个待解决的问题,就是如何获取?

2、打开文件用于写出

3、保存笔记内容

4、关闭文件

显示文件内容

1、打开文件读取

2、逐行读取文件内容

3、显示

4、关闭文件

删除不需要的内容

1、首先的问题,如何定位不需要的内容?

2、在显示文件的过程中,对内容按照行进行编号

3、打开文件用于读取

4、全部读取

5、关闭文件

6、打开文件用于写出

7、循环遍历所有行,跳过要删除的行,写出

8、关闭文件

共性问题

三个小程序,都应当读、写同一个文件,否则无法互相配合

逻辑写的并不复杂,我们在下面源码的部分再更细致的讲解。这个“伪代码”提纲的功能,是让你在开始编写程序的时候,不至于不知道如何下手。

既然第4个共性的问题涉及到三个小程序,我们先从这个问题开始解决。方法非常简单,短到只有一行代码:

filename="daily.txt"

这一行代码只是定义了一个字符串变量filename,表示我们使用的记事文件名称。重点在于这行代码如何使用。

程序库

我们的课程一开始就大肆鼓吹Python的程序库如何丰富,我们今天就来自己定义一个程序库。上面这个仅仅一行代码的程序,我们保存为common.py,文件名不要输入错,因为我们后面还要用到。

此时common.py就称为一个程序库,虽然看上去很简陋,但它就是程序库。我们在这里很大程度出于演示程序库应用的目的。因为这样简单的功能,并非必须用程序库的方法解决。

现在我们有了一个程序库,使用程序库的方法有三种,我们使用源代码来展示:95ea424c8c1224c053dfa7d127f21ec1d5f61d59.png

这三种方法,各有不同的应用场景,可以根据自己的喜好选择。

现在已经可以动手写第一个小程序了:13d230c390d65bb218a2faddb072d4b140911548.png

第二个小程序,显示记事文件内容:fa441ae9f5e64d9597682f38979b841ddf6d3e0d.png

第三个小程序,删除记事文件中不要的行:8779b2ebb93b99180210747073e99869c9dd7406.png

总结:

文件操作是一个软件的基本操作,用处非常多

文件有多种多样的格式,比如音乐、视频、照片、文本

程序文件是文本文件,也就是由文字、字符组成的文件,我们的样例“笔记本”程序所记录的文件也是文本文件。

文件的操作要小心,以免破坏掉有用的文件

扩展库(或:扩展程序库)是Python扩展功能的主要形式,Python有世界上各个公司、组织发布的海量扩展库资源,在所有的语言中是最多的,Python也因此被称为“胶水语言”,意思是把扩展库的功能粘合在一起

编程,重要的是由思路。大项目拆成小项目,逐层细化。在这个过程中,我们原来介绍了用函数化来管理这些分拆的每一个部分。今天又学到了程序库,用不同的程序库来分类一组相应的函数或者变量

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个使用Python编写的简易记事本,以下是代码: ```python from tkinter import * from tkinter.filedialog import askopenfilename, asksaveasfilename # 创建窗口 root = Tk() root.title("记事本") root.geometry("600x600") # 创建文本框 text_area = Text(root, font=("Helvetica", 12)) text_area.pack(expand=True, fill=BOTH) # 新建文件 def new_file(): root.title("未命名文件") text_area.delete("1.0", END) # 打开文件 def open_file(): filepath = askopenfilename(defaultextension=".txt", filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")]) if not filepath: return text_area.delete("1.0", END) with open(filepath, "r") as input_file: text = input_file.read() text_area.insert("1.0", text) root.title(f"{filepath}") # 保存文件 def save_file(): filepath = asksaveasfilename(defaultextension=".txt", filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")]) if not filepath: return with open(filepath, "w") as output_file: text = text_area.get("1.0", END) output_file.write(text) root.title(f"{filepath}") # 菜单栏 menu_bar = Menu(root) # 文件菜单 file_menu = Menu(menu_bar, tearoff=0) file_menu.add_command(label="新建", command=new_file) file_menu.add_command(label="打开", command=open_file) file_menu.add_command(label="保存", command=save_file) file_menu.add_separator() file_menu.add_command(label="退出", command=root.quit) menu_bar.add_cascade(label="文件", menu=file_menu) # 添加菜单栏 root.config(menu=menu_bar) root.mainloop() ``` 您可以复制上述代码保存为 Python 文件,然后运行即可使用。希望能对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值